platform/upstream/gcc.git
13 years agoAdd a testcase for PR middle-end/47383.
H.J. Lu [Wed, 3 Aug 2011 14:44:54 +0000 (14:44 +0000)]
Add a testcase for PR middle-end/47383.

2011-08-03  H.J. Lu  <hongjiu.lu@intel.com>

PR middle-end/47383
* gcc.dg/torture/pr47383.c: Likewise.

From-SVN: r177277

13 years agoexp_ch13.adb: Add with and use clause for Targparm;
Hristian Kirtchev [Wed, 3 Aug 2011 14:42:53 +0000 (14:42 +0000)]
exp_ch13.adb: Add with and use clause for Targparm;

2011-08-03  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch13.adb: Add with and use clause for Targparm;
(Expand_N_Free_Statement): Prevent the generation of a custom
Deallocate on .NET/JVM targets since this requires pools and address
arithmetic.
* exp_ch4.adb (Expand_Allocator_Expression): When compiling for
.NET/JVM targets, attach the newly allocated object to the access
type's finalization collection. Do not generate a call to
Set_Finalize_Address_Ptr on .NET/JVM because this routine does not
exist in the runtime.
(Expand_N_Allocator): When compiling for .NET/JVM targets, do not
create a custom Allocate for object that do not require initialization.
Attach a newly allocated object to the access type's finalization
collection on .NET/JVM.
* exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add special processing for
assignment of controlled types on .NET/JVM. The two hidden pointers
Prev and Next and stored and later restored after the assignment takes
place.
* exp_ch6.adb (Expand_Call): Add local constant Curr_S. Add specialized
kludge for .NET/JVM to recognize a particular piece of code coming from
Heap_Management and change the call to Finalize into Deep_Finalize.
* exp_ch7.adb (Build_Finalization_Collection): Allow the creation of
finalization collections on .NET/JVM only for types derived from
Controlled. Separate the association of storage pools with a collection
and only allow it on non-.NET/JVM targets.
(Make_Attach_Call): New routine.
(Make_Detach_Call): New routine.
(Process_Object_Declarations): Suppress the generation of
build-in-place return object clean up code on .NET/JVM since it uses
pools.
* exp_ch7.ads (Make_Attach_Call): New routine.
(Make_Detach_Call): New routine.
* exp_intr.adb Add with and use clause for Targparm.
(Expand_Unc_Deallocation): Detach a controlled object from a collection
on .NET/JVM targets.
* rtsfind.ads: Add entries RE_Attach, RE_Detach and
RE_Root_Controlled_Ptr to tables RE_Id and RE_Unit_Table.
* snames.ads-tmpl: Add name Name_Prev. Move Name_Prev to the special
names used in finalization.

2011-08-03  Hristian Kirtchev  <kirtchev@adacore.com>

* a-fihema.adb: Add with and use clauses for System.Soft_Links.
(Attach, Detach): Lock the current task when chaining an object onto a
collection.

From-SVN: r177276

13 years agoa-except.adb, [...] (Raise_From_Controlled_Operation): Rewritten to create the messag...
Hristian Kirtchev [Wed, 3 Aug 2011 14:36:26 +0000 (14:36 +0000)]
a-except.adb, [...] (Raise_From_Controlled_Operation): Rewritten to create the message strings when...

2011-08-03  Hristian Kirtchev  <kirtchev@adacore.com>

* a-except.adb, a-except-2005.adb (Raise_From_Controlled_Operation):
Rewritten to create the message strings when the exception is not
raised by an abort during finalization.
* a-except.ads, a-except-2005.ads: Add pragma Export for procedure
Raise_From_Controlled_Operation and update its associated comment.
* a-fihema.ads, a-fihema.adb: New GNAT unit.
Ada.Finalization.Heap_Management provides key functionality
associated with controlled objects on the heap, their creation,
finalization and reclamation. Type Finalization_Collection is
effectively a wrapper which sits ontop of a storage pool and performs
all necessary bookkeeping for all the objects it contains. Each
access-to-controlled or access-to-class-wide type receives a collection
as part of its expansion. The compiler generates buffer code and
invokes Allocate / Deallocate to create and destroy allocated
controlled objects.
* a-finali.adb ("="): Removed.
* a-finali.ads ("="): Removed. Controlled types no longer carry hidden
fields Prev and Next.
* ali.adb (Scan_ALI): Add parsing code to process PF / Has_Finalizer.
A library unit with at least one controlled object on the library level
has a special finalizer which is invoked by the binder. To signal this,
ali files carry field PF.
* ali.ads: New field in type Unit_Record called Has_Finalizer. Add
associated comment on field usage.
* a-tags.adb (Get_RC_Offset): Removed.
(Needs_Finalization): New routine.
* a-tags.ads: Update the structure of the GNAT dispatch tables.
Dispatch tables now carry field Needs_Finalization which provides
runtime indication whether a type is controlled or has controlled
components or both. Remove field RC_Offset.
(Get_RC_Offset): Removed along with its associated pragma Export.
Since tagged types with controlled components no longer carry hidden
field _controller, the special mechanism to retrieve its location is no
longer needed.
(Needs_Finalization): New routine.
* atree.ads, atree.adb (Elist24): New routine.
(Set_Elist24): New routine.
* atree.h: Add a define clause for Elist24.
* bindgen.adb New library-level variable Lib_Final_Built.
(Gen_Adafinal_Ada): Reimplemented. Depending on the restrictions or the
presence of a VM target, the routine generates calls to the proper
library finalization routine.
(Gen_Adainit_Ada): Import Finalize_Library_Objects only on non-VM
targets. Set the correct library finalization routine depending on
whether the library has controlled objects or this is a VM compilation.
(Gen_Finalize_Library_Ada): New routine. This procedure generates calls
to library-level finalizers of compiled units in reverse order of
elaboration. It also produces exception management code and reraises a
potential exception after all units have been finalized.
(Gen_Finalize_Library_C): New routine. This procedure generates calls to
library-level finalizers of compiled units in reverse order of
elaboration.
(Gen_Finalize_Library_Defs_C): New routine. This procedure generates the
definitions of all library-level finalizers available to the compilation
(Gen_Main_Ada): Directly call Adafinal which now contails all target
dependent code.
(Gen_Main_C): Add new local constant Needs_Library_Finalization. Call
System.Standard_Library.Adafinal directly. If the library needs
finalization actions, create the sequence of finalization calls.
(Gen_Output_File_Ada): Alphabetize local variables and constants.
Generate a with clause for System.Soft_Links when compiling for a VM.
Remove the code which imports System.Standard_Library.Adafinal as
Do_Finalize. Generate the library finalization routine.
(Gen_Output_File_C): Add new local constant Needs_Library_Finalization.
If the library needs finalization actions, create all the definitions
of library- level finalizers.
(Has_Finalizer): New routine. Determines whether at least one compiled
unit has a library-level finalizer.
Add type Qualification_Mode.
(Set_Unit_Name): Add a formal which controls the replacement of a dot.
* einfo.adb: New usage of field 15 as Return_Flag.
Remove Finalization_Chain_Entity from the usages of field 19.
Remove Associated_Final_Chain from the usages of field 23.
New usage of field 23 as Associated_Collection.
New usage of field 24 as Finalizer.
New usage of flag 252 as Is_Processed_Transient.
(Associated_Final_Chain): Removed.
(Associated_Collection): New routine.
(Finalization_Chain_Entity): Removed.
(Finalizer): New routine.
(Is_Finalizer): New routine.
(Is_Processed_Transient): New routine.
(Return_Flag): New routine.
(Set_Associated_Final_Chain): Removed.
(Set_Associated_Collection): New routine.
(Set_Finalization_Chain_Entity): Removed.
(Set_Finalizer): New routine.
(Set_Is_Processed_Transient): New routine.
(Set_Return_Flag): New routine.
(Write_Entity_Flags): Include Is_Processed_Transient to the list of
displayed flags.
(Write_Field8_Name): Alphabetize the output.
(Write_Field11_Name): Alphabetize the output.
(Write_Field12_Name): Alphabetize the output.
(Write_Field13_Name): Alphabetize the output.
(Write_Field14_Name): Alphabetize the output.
(Write_Field15_Name): Alphabetize the output.
(Write_Field16_Name): Alphabetize the output.
(Write_Field17_Name): Alphabetize the output.
(Write_Field18_Name): Alphabetize the output.
(Write_Field19_Name): Alphabetize the output. Remove the output of
Finalization_Chain_Entity.
(Write_Field20_Name): Alphabetize the output.
(Write_Field21_Name): Alphabetize the output.
(Write_Field22_Name): Alphabetize the output.
(Write_Field23_Name): Alphabetize the output. Remove the output of
Associated_Final_Chain. Add output for Associated_Collection.
(Write_Field24_Name): Alphabetize the output.
(Write_Field25_Name): Add output for Finalizer.
(Write_Field26_Name): Alphabetize the output.
(Write_Field27_Name): Alphabetize the output.
(Write_Field28_Name): Alphabetize the output.
* einfo.ads: Add new field description for Associated_Collection and
its uses in nodes.
Remove Associated_Final_Chain and its uses in nodes.
Remove Finalization_Chain_Entity and its uses in nodes.
Add new field description for Finalizer and its uses in nodes.
Add new synthesized attribute Is_Finalizer.
Add new flag description for Is_Processed_Transient and its uses in
nodes.
Add new field description for Return_Flag and its uses in nodes.
(Associated_Final_Chain): Removed along with its pragma Inline.
(Associated_Collection): New routine and pragma Inline.
(Finalization_Chain_Entity): Removed along with its pragma Inline.
(Finalizer): New routine and pragma Inline.
(Is_Finalizer): New routine and pragma Inline.
(Is_Processed_Transient): New routine and pragma Inline.
(Return_Flag): New routine and pragma Inline.
(Set_Associated_Final_Chain): Removed along with its pragma Inline.
(Set_Associated_Collection): New routine and pragma Inline.
(Set_Finalization_Chain_Entity): Removed along with its pragma Inline.
(Set_Finalizer): New routine and pragma Inline.
(Set_Is_Processed_Transient): New routine and pragma Inline.
(Set_Return_Flag): New routine and pragma Inline.
* exp_aggr.adb: Alphabetize subprograms.
(Build_Array_Aggr_Code): Remove formal Flist and its associated comment.
(Build_Record_Aggr_Code): Remove formals Flist and Obj along with their
associated comments. Remove local variables External_Final_List and
Attach.
Rename Ctrl_Stuff_Done to Finalization_Done. Rename local variable A to
Ancestor. Remove the retrieval of finalization lists. Update the call to
Make_Adjust_Call.
(Convert_Aggr_In_Allocator): Remove the retrieval of finalization
lists. Update the call to Late_Expansion.
(Convert_Aggr_In_Assignment): Update the call to Late_Expansion.
(Convert_Aggr_In_Object_Decl): Update the call to Late_Expansion.
(Gen_Assign): Remove the retrieval of the finalization list used to
build the assignment. Update the calls to Make_Init_Call and
Make_Adjust_Call.
(Gen_Ctrl_Actions_For_Aggr): Renamed to Generate_Finalization_Actions.
Remove the mechanism to determine attachment levels and finalization
list retrieval. Remove the processing for coextensions.
(Init_Controller): Removed. Controllers no longer exist.
(Late_Expansion): Remove formals Flist and Obj along with their
associated comments. Update the calls to Build_Record_Aggr_Code and
Build_Array_Aggr_Code.
* exp_ch13.adb (Expand_N_Free_Statement): New routine.
(Expand_N_Freeze_Entity): Add special processing for finalizers which
appear in entry bodies, protected subprograms and task bodies.
* exp_ch13.ads (Expand_N_Free_Statement): New routine.
* exp_ch3.adb (Add_Final_Chain): Removed.
(Build_Array_Init_Proc): Alphabetize local variables.
(Build_Assignment): Alphabetize local variables. Update the call to
Maked_Adjust_Call.
(Build_Class_Wide_Master): Rename local variables to better reflect
their role.
(Build_Discriminant_Assignments): Code reformatting.
(Build_Init_Call_Thru): Code reformatting.
(Build_Init_Procedure): Code reformatting. Generate a special version
of Deep_Finalize which is capable of finalizing all initialized
components and ignore the rest.
(Build_Init_Statements): Rename local variables to better reflect their
role.
Reimplement the mechanism to include the creation and update of an index
variable called a "counter". It is used as a bookmark for tracing
initialized and non-initialized components.
(Build_Initialization_Call): Remove local variable Controller_Typ.
Alphabetize all local variables. Remove the initialization of the
record controller and update the call to Make_Init_Call.
(Build_Record_Init_Proc): Rename formal Pe to Rec_Ent.
New local variable Counter.
(Constrain_Array): Alphabetize.
(Expand_Freeze_Array_Type): Create a collection instead of a
finalization list.
(Expand_Freeze_Class_Wide_Type): New routine. Creates TSS primitive
Finalize_Address which is used in conjunction with allocated controlled
objects.
(Expand_N_Object_Declaration): Remove the creation of a finalization
list for anonymous access types. Update the calls to Make_Init_Call and
Make_Adjust_Call.
(Expand_Freeze_Record_Type): Remove local variable Flist. Remove the
retrieval of finalization lists. Remove the expansion of the record
controller. Create TSS primitive Finalize_Address used in conjunction
with controlled objects on the heap. Create finalization collections
for access-to-controlled record components.
(Expand_Record_Controller): Removed.
(Freeze_Type): Remove the freezing of record controllers. Freezing of
class-wide types now requires additional processing. Create
finalization collections for access-to-controlled types.
(Increment_Counter): New routine.
(Make_Counter): New routine.
(Make_Eq_If): Remove the mention of Name_uController.
(Make_Predefined_Primitive_Specs): There is no longer need to skip
types coming from System.Finalization_Root.
(Predef_Deep_Spec): Reimplemented to reflect the new parameter profiles.
(Predefined_Primitive_Bodies): There is no longer need to skip types
coming from System.Finalization_Root.
(Stream_Operation_OK): Do not generate stream routines for
type Ada.Finalization.Heap_Management.Finalization_Collection.
* exp_ch3.ads: Alphabetize subprograms.
* exp_ch4.adb: Remove with and use clause for Sem_Ch8.
Add with and use clause for Lib.
(Complete_Coextension_Finalization): Removed.
(Complete_Controlled_Allocation): New routine. Create a finalization
collection for anonymous access-to-controlled types. Create a custom
Allocate which interfaces with the back end and the machinery in
Heap_Management.
(Expand_Allocator_Expression): Add necessary calls to
Complete_Controlled_Allocation. Remove the retrieval of finalization
lists. Update the calls to Make_Adjust_Call. Generate a call to
Ada.Finalization.Heap_Management.Set_Finalize_Address_Ptr to decorate
the associated collection.
(Expand_N_Allocator): Remove the processing for dynamic coextensions.
Code clean up. Remove the retrieval of finalization lists and
attachment levels.
Update the call to Make_Init_Call. Generate a call to
Ada.Finalization.Heap_Management.Set_Finalize_Address_Ptr to decorate
the associated collection.
(Get_Allocator_Final_List): Removed. Finalization lists are not
available.
(Suitable_Element): Remove the mention of Name_uController.
* exp_ch5.adb: Remove with and use clauses for Ttypes and Uintp.
(Make_Tag_Ctrl_Assignment): Rewritten to simply do a finalization of
the left hand side, carry out the assignment and adjust the left hand
side.
* exp_ch6.adb (Add_Final_List_Actual_To_Build_In_Place_Call): Removed.
(Add_Collection_Actual_To_Build_In_Place_Call): New routine.
(BIP_Formal_Suffix): Rename BIP_Final_List and BIPfinallist to
BIP_Collection and BIPcollection.
(Build_Heap_Allocator): New routine used to allocate the return object
of a build-in-place function onto a collection.
(Expand_Ctrl_Function_Call): Moved from Exp_Ch7.
(Expand_Call): Do not replace direct calls to Deep routines with their
aliases.
(Expand_N_Extended_Return_Statement): Give all variables shorter names
and update their occurrences. Add a special return flag to monitor the
[ab]normal execution of the function. The flag is set right before the
return statement.
Rewrite the mechanism used to allocate a build-in-place return object
on the heap or on a storage pool.
(Is_Direct_Deep_Call): New routine.
(Make_Build_In_Place_Call_In_Allocator): Add a collection to a
build-in-place function call instead of a final list. Build a call to
Set_Finalize_Address_Ptr to decorate the associated collection.
(Make_Build_In_Place_Call_In_Anonymous_Context): Create a temporary in
order to name the build-in-place function call's result for later
finalization. Add a collection to a build-in-place function call
instead of a final list.
(Make_Build_In_Place_Call_In_Assignment): Add a collection to a
build-in-place function call instead of a final list. Remove the code
which moves one final list and transforms it into the actual in a
nested build-in-place call.
(Make_Build_In_Place_Call_In_Object_Declaration): Add a collection to a
build-in-place function call instead of a final list.
(Move_Final_List): Removed.
(Needs_BIP_Collection): New routine.
(Needs_BIP_Final_List): Removed.
* exp_ch6.ads: Replace BIP_Final_List with BIP_Collection in
enumeration type BIP_Formal_Kind.
Update the related comment.
(Needs_BIP_Collection): New routine.
(Needs_BIP_Final_List): Removed.
* exp_ch7.adb: Add with and use clauses for Elists, Exp_Ch6, Stringt
and Ttypes. Remove with and use clauses for Sem_Type. Alphabetize the
majority of subprograms in this unit. Add Name_Finalize_Address to
array Name_Of and TSS_Finalize_Address to array Deep_Name_Of.
(Build_Adjust_Or_Finalize_Statements): Create the adjust or finalization
statements for an array type.
(Build_Adjust_Statements): Create the adjust statements for a record
type.
(Build_Cleanup_Statements): New routine. A procedure which given any
construct containing asynchronous calls, references to _master, or is a
task body, a task allocation or a protected body produces the necessary
runtime calls to clean up these constructs.
(Build_Exception_Handler): New routine.
(Build_Final_List): Removed.
(Build_Finalization_Collection): New routine. A core procedure which
creates a collection to service heap allocated controlled objects
associated with an access-to-controlled type.
(Build_Finalize_Statements): Create the finalization statements for a
record types.
(Build_Finalizer): New routine. A core procedure which given any
construct with declarations and/or statements detects all objects which
need any type of clean up (controlled objects, protected objects) and
generates all necessary code to clean up the said objects in the proper
order.
(Build_Finalizer_Call): New routine.
(Build_Initialize_Statements): Create the initialization statements for
an array type. The generated routine contains code to finalize partially
initialized arrays.
(Build_Object_Declarations): New routine.
(Build_Raise_Statement): New routine.
(Clean_Simple_Protected_Objects): Removed.
(Controller_Component): Removed.
(Enclosing_Function): New routine.
(Expand_Cleanup_Actions): Create a finalizer for a construct which has
either declarations or statements or both.
(Expand_N_Package_Body): Create a finalizer for a non-generic package.
(Expand_N_Package_Declaration): Create a finalizer for a non-generic
package.
(Find_Final_List): Removed.
(Global_Flist_Ref): Removed.
(In_Finalization_Root): Removed.
(Insert_Actions_In_Scope_Around): Determine the range of the transient
scope in terms of tree nodes. Process all transient variables within
that range.
(Make_Adjust_Call): Rewritten. There is no longer an attach call
generated after the adjust.
(Make_Attach_Call): Removed.
(Make_Call): New routine.
(Make_Clean): Removed.
(Make_Deep_Array_Body): Rewritten to simply invoke the appropriate
build routines.
(Make_Deep_Proc): Rewritten to generate the new profile signature used
in Deep routines.
(Make_Deep_Record_Body): Rewritten to simply invoke the appropriate
build routines.
(Make_Final_Call): Modified to simply create a call to either
Deep_Finalize or Finalize.
(Make_Finalize_Address_Body): New routine.
(Make_Finalize_Address_Stmts): New routine. A function which produces
TSS primitive Finalize_Address used in conjunction with heap allocated
controlled objects.
(Make_Handler_For_Ctrl_Operation): Add specialized code for .NET/JVM.
(Make_Init_Call): Rewritten. There is no longer an attach call
generated after initialization.
(Make_Local_Deep_Finalize): New routine.
(Make_Set_Finalize_Address_Ptr_Call): New routine.
(Make_Transient_Block): Remove the finalization list retrieval and
manipulation.
(Needs_Finalization): Moved to Exp_Util.
(Parent_Field_Type): New routine.
(Preprocess_Components): New routine.
(Process_Transient_Objects): New routine.
(Wrap_HSS_In_Block): New routine.
(Wrap_Transient_Declaration): Remove finalization list management and
controller insertion.
(Wrap_Transient_Expression): Code reformatting.
(Wrap_Transient_Statement): Code reformatting.
* exp_ch7.ads (Build_Final_List): Removed.
(Build_Finalization_Collection): New routine.
(Build_Raise_Statement): New routine.
(Controller_Component): Removed.
(Expand_Ctrl_Function_Call): Moved to Exp_Ch6.
(Find_Final_List): Removed.
(In_Finalization_Root): Removed.
(Is_Simple_Protected_Type): Update related comment.
(Make_Adjust_Call): New parameter profile and associated comments.
(Make_Attach_Call): Removed.
(Make_Final_Call): New parameter profile and associated comments.
(Make_Finalize_Address_Body): New routine.
(Make_Init_Call): New parameter profile and associated comments.
(Make_Local_Deep_Finalize): New routine.
(Make_Set_Finalize_Address_Ptr_Call): New routine.
(Needs_Finalization): Moved to Exp_Util.
* exp_ch9.adb (Add_Object_Pointer): Code reformatting.
(Expand_N_Protected_Body): Remove the handling of finalization lists.
(Find_Protection_Type): Moved to Exp_Util.
* exp_disp.adb: Remove with and use clauses for Exp_Ch7.
(Make_DT): Update sequence of dispatch table initialization. Remove the
initialization of field RC_Offset. Add initialization of field Needs_
Finalization.
* exp_intr.adb (Expand_Unc_Deallocation): Code reformatting.
Reimplement how an object is first finalized, then deallocated.
* exp_strm.adb (Build_Record_Or_Elementary_Input_Function):
Code reformatting.
* exp_tss.ads: Add special suffix for TSS primitive Finalize_Address.
Register TSS_Finalize_Address with type TSS_Names.
* exp_util.adb (Build_Allocate_Deallocate_Proc): New routine. This core
procedure provides the interface between an allocation / deallocation
and the support machinery in Ada.Finalization.Heap_Management.
(Find_Init_Call): Code reformatting.
(Find_Init_Call_In_List): Code reformatting.
(Find_Protection_Type): Moved from Exp_Ch9.
(Find_Prim_Op): Reimplement to add preference of recovered primitive.
(Has_Controlled_Coextensions): Removed.
(Has_Controlled_Objects): New routine.
(In_Library_Level_Package_Body): New routine.
(Insert_Action_After): New routine.
(Is_Finalizable_Transient): New routine. This predicate determines
whether an object declaration is one of the many variants of controlled
transients.
(Is_Null_Access_BIP_Func_Call): New routine.
(Is_Non_BIP_Func_Call): New routine.
(Is_Related_To_Func_Return): New routine.
(Needs_Finalization): Moved from Exp_Ch7.
* exp_util.ads (Build_Allocate_Deallocate_Proc): New routine.
(Find_Protection_Type): Moved from Exp_Ch9.
(Has_Controlled_Coextensions): Removed.
(Has_Controlled_Objects): New routine.
(In_Library_Level_Package_Body): New routine.
(Insert_Action_After): New routine.
(Is_Finalizable_Transient): New routine.
(Is_Null_Access_BIP_Func_Call): New routine.
(Is_Non_BIP_Func_Call): New routine.
(Is_Related_To_Func_Return): New routine.
(Needs_Finalization): Moved from Exp_ch7.
* expander.adb (Expand): Add a case for N_Free_Statement.
* freeze.adb (Freeze_All): Replace the generation of a finalization
list with a collection for access-to-controlled types.
(Freeze_Entity): Code reformatting.
(Freeze_Record_Type): Remove the freezing of a record controller
component.
(Freeze_Subprogram): Code reformatting.
* inline.adb (Cleanup_Scopes): Remove the reset of the scope
finalization list.
* lib-writ.adb (Write_Unit_Information): Output "PF" when a package
has a library-level finalizer.
* lib-writ.ads: Add "PF" to the sequence of unit attributes.
* a-filico.ads, a-filico.adb, s-finimp.ads, s-finimp.adb: Removed.
* Makefile.rtl: Remove a-filico and s-finimp from the list of object
files. Add a-fihema to the list of object files.
* par-ch4.adb:
Alphabetize the associations in type Is_Parameterless_Attribute.
* rtsfind.ads: Ada.Finalization_List.Controller and
System.Finalization_Implementation are no longer a GNAT unit.
Update the range of type Ada_Finalization_Child. Remove the following
recoverable entities:

   RE_Attach_To_Final_List
   RE_Deep_Tag_Attach
   RE_Finalize_List
   RE_Finalize_One
   RE_Finalizable_Ptr_Ptr
   RE_Global_Final_List
   RE_Limited_Record_Controller
   RE_List_Controller
   RE_Move_Final_List
   RE_Record_Controller
   RE_Simple_List_Controller

Add the following recoverable entities:

   RE_Add_Offset_To_Address
   RE_Allocate
   RE_Base_Pool
   RE_Deallocate
   RE_Exception_Identity
   RE_Finalization_Collection
   RE_Finalization_Collection_Ptr
   RE_Needs_Finalization
   RE_Save_Library_Occurrence
   RE_Set_Finalize_Address_Ptr
   RE_Set_Storage_Pool_Ptr
   RE_Storage_Count
* sem_aggr.adb (Resolve_Record_Aggregate): Remove mention of
Name_uController.
* sem_aux.adb (First_Discriminant): Remove mention of Name_uController.
(First_Stored_Discriminant): Remove the mention of Name_uController.
* sem_aux.ads: Comment reformatting.
* sem_ch10.adb (Build_Chain): Signal the class-wide creation machinery
to redecorate an already existing class-wide type.
(Decorate_Tagged_Type): New parameter profile and associated comment.
Create a "shadow class-wide type" for a shadow entity.
* sem_ch11.adb (Analyze_Exception_Handlers): Remove the dubious setting
of the final chain along with the associated comment.
* sem_ch3.adb (Access_Type_Declaration): Add new local variable
Full_Desig and set it to the full view of the designated type.
Initialize the finalization collection to empty.
(Build_Derived_Record_Type): Alphabetize local variables. Code
reformatting.
(Collect_Fixed_Components): Remove the mention of Name_uController.
(Create_Constrained_Components): Remove the mention of Name_uController.
(Make_Class_Wide_Type): Add specialized code to redecorate an existing
class-wide type of a shadow entity.
(Process_Full_View): Update the machinery which marks type
Limited_Controlled's entity as limited.
* sem_ch4.adb (Analyze_One_Call): Code reformatting.
* sem_ch6.adb (Create_Extra_Formals): Do not generate a finalization
list, instead make a collection build-in-place formal.
* sem_ch8.adb (Analyze_Object_Renaming): Look at the available view of
a designated type in order to establish a match between the renaming
and the renamed entity.
(Find_Selected_Component): Add guard to prevent spurious exceptions
from being raised on .NET/JVM.
* sem_disp.adb (Check_Dispatching_Operation): Include Finalize_Address
to the list of primitive that need special processing. Update arrays
C_Names and D_Names.
(Replace_Types): Handle class-wide types.
* sem_elab.adb (Check_A_Call): Since Deep_Initialize now has a
different parameter profile, look at the first formal.
* sem_prag.adb: Remove with and use clauses for Exp_Ch7. Add with and
use clauses for Exp_Util.
* sem_res.adb: Remove with and use clauses for Elists.
(Propagate_Coextensions): Removed.
(Resolve_Allocator): Do not propagate the list of coextensions from one
allocator to another.
* sem_util.adb (Build_Actual_Subtype_Of_Component): Rename variable
Deaccessed_T to Desig_Typ.
(Enter_Name): Remove the mention of Name_uController.
(Gather_Components): Remove the mention of Name_uController.
(Incomplete_Or_Private_View): New routine.
(Is_Coextension_Root): Removed.
(Is_Fully_Initialized_Type): Remove the mention of Name_uController.
* sem_util.ads (Incomplete_Or_Private_View): New routine.
(Is_Coextension_Root): Removed.
* s-finroo.ads: Remove with clause for Ada.Unchecked_Conversion.
Controlled types are now derived from a null tagged record. Remove
types Finalizable_Ptr, Finalizable and Empty_Root_Controlled.
* sinfo.adb (Coextensions): Removed.
(Set_Coextensions): Removed.
* sinfo.ads: Remove Coextensions from the explanation of node fields
and its uses in nodes.
Update the field usage of N_Allocator.
(Coextensions): Removed along with its pragma Inline.
(Set_Coextensions): Removed along with its pragma Inline.
* snames.ads-tmpl: Remove names

  Name_uClean
  Name_uController
  Name_uFinal_List
  Name_uLocal_Final_List
  Name_Finalization_Root
  Name_Next
  Name_Prev

Add names

  Name_uFinalizer
  Name_Finalize_Address
* s-pooglo.adb (Allocate): Add overriding indicator.
(Deallocate): Add overriding indicator.
(Storage_Size): Add overriding indicator.
* s-soflin.adb (Adafinal_NT): Invoke Finalize_Library_Objects rather
than Finalize_Global_List.
(Null_Finalize_Global_List): Removed.
(Save_Library_Occurrence): New routine.
* s-soflin.ads: Remove variable Finalize_Global_List along with its
initialization. Add variable Finalize_Library_Objects along with its
pragma Export. Add variables Library_Exception and
Library_Exception_Set along with their pragma Export.
(Null_Finalize_Global_List): Removed.
(Save_Library_Occurrence): New routine.
* s-tassta.adb (Finalize_Global_Tasks): Call Finalize_Library_Objects
rather than Finalize_Global_List.
* tbuild.adb (Unchecked_Convert_To): Capture and set the parent field
of the constructed node.

From-SVN: r177275

13 years ago* gnat.dg/specs/debug1.ads: Add missing -margs switch.
Arnaud Charlet [Wed, 3 Aug 2011 14:33:50 +0000 (14:33 +0000)]
* gnat.dg/specs/debug1.ads: Add missing -margs switch.

From-SVN: r177274

13 years ago* lib/gnat-dg.exp: Use gnatmake -c -u to compile a single file.
Arnaud Charlet [Wed, 3 Aug 2011 14:32:03 +0000 (14:32 +0000)]
* lib/gnat-dg.exp: Use gnatmake -c -u to compile a single file.

From-SVN: r177273

13 years ago* link.c: Include "auto-host.h" before system headers.
Rainer Orth [Wed, 3 Aug 2011 14:20:05 +0000 (14:20 +0000)]
* link.c: Include "auto-host.h" before system headers.

From-SVN: r177272

13 years agoAdd testcases for PR target/47744.
H.J. Lu [Wed, 3 Aug 2011 14:07:32 +0000 (14:07 +0000)]
Add testcases for PR target/47744.

2011-08-03  H.J. Lu  <hongjiu.lu@intel.com>

PR target/47744
* gcc.dg/torture/pr47744-1.c: New.
* gcc.dg/torture/pr47744-2.c: Likewise.
* gcc.dg/torture/pr47744-3.c: Likewise.

From-SVN: r177271

13 years agore PR middle-end/49958 (fold performs invalid association)
Richard Guenther [Wed, 3 Aug 2011 13:33:28 +0000 (13:33 +0000)]
re PR middle-end/49958 (fold performs invalid association)

2011-08-03  Richard Guenther  <rguenther@suse.de>

PR middle-end/49958
* fold-const.c (fold_binary_loc): Only associate
(+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
overflow wraps.

        * gcc.dg/torture/pr49958.c: New testcase.

From-SVN: r177270

13 years agomake.adb (Gnatmake): Add to table Library_Projs only library projects that are not...
Vincent Celier [Wed, 3 Aug 2011 12:36:13 +0000 (12:36 +0000)]
make.adb (Gnatmake): Add to table Library_Projs only library projects that are not extended.

2011-08-03  Vincent Celier  <celier@adacore.com>

* make.adb (Gnatmake): Add to table Library_Projs only library projects
that are not extended. Do not check if a library project that is
extended should be regenerated. Do not add to table Library_Paths the
libraries that are in extended projects. Link only with libraries that
are in libray projects that are not extended.
* prj-nmsc.adb (Check_Library_Attributes): Do not reset flag Library
for a library project that is extended.

From-SVN: r177269

13 years agore PR rtl-optimization/49941 (segmentation fault in redirect_jump_2)
Alan Modra [Wed, 3 Aug 2011 11:48:21 +0000 (21:18 +0930)]
re PR rtl-optimization/49941 (segmentation fault in redirect_jump_2)

PR rtl-optimization/49941
* jump.c (mark_jump_label): Comment.
(mark_jump_label_1): Set JUMP_LABEL for return jumps.
* emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
(mark_used_flags): Don't mark RETURN.

From-SVN: r177268

13 years agore PR middle-end/49938 (ICE in interpret_loop_phi, at tree-scalar-evolution.c:1645)
Richard Guenther [Wed, 3 Aug 2011 11:09:35 +0000 (11:09 +0000)]
re PR middle-end/49938 (ICE in interpret_loop_phi, at tree-scalar-evolution.c:1645)

2011-08-03  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/49938
* tree-scalar-evolution.c (interpret_loop_phi): Gracefully
deal with a POLYNOMIAL_CHREC.

* g++.dg/torture/pr49938.C: New testcase.

From-SVN: r177267

13 years ago[multiple changes]
Arnaud Charlet [Wed, 3 Aug 2011 10:50:14 +0000 (12:50 +0200)]
[multiple changes]

2011-08-03  Gary Dismukes  <dismukes@adacore.com>

* sem_ch6.adb (Find_Corresponding_Spec): When in an instance, skip
conforming subprogram renamings that appear to be completions if they
are not fully conformant.
Such renamings are homographs but not completions.
* sem_type.adb (Disambiguate): Handle disambiguation of overloaded
names in a subprogram renaming that appears in an instance.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

* exp_util.adb (Expand_Subtype_From_Expr): if the type is limited but
not immutably limited, build actual subtype from expression to provide
proper bounds to caller.

2011-08-03  Gary Dismukes  <dismukes@adacore.com>

* sem_ch8.adb: Minor comment correction.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

* exp_strm.adb (Build_Array_Input_Function): In Ada 2005 mode, when
returning a limited array, use an extended return statement.

2011-08-03  Vincent Celier  <celier@adacore.com>

* make.adb (Initialize): If --subdirs= is used, but no project file is
specified, attempt to create the specify subdir if it does not already
exist and use it as the object directory as if -D had been specified.

2011-08-03  Arnaud Charlet  <charlet@adacore.com>

* s-tpopsp-vms.adb: New file.
* s-taprop-vms.adb: Put back ATCB_Key, since needed by this file on VMS.
* gcc-interfaces/Makefile.in: Use s-taprop-vms.adb on VMS.

From-SVN: r177266

13 years agoproc.h: New.
Uros Bizjak [Wed, 3 Aug 2011 10:46:04 +0000 (12:46 +0200)]
proc.h: New.

* config/linux/proc.h: New.
* config/linux/proc.c: Include "proc.h".  Do not include <sched.h>.
(gomp_cpuset_popcount): Rename from cpuset_popcount.  No more static.
(gomp_init_num_threads): Update call to cpuset_popcount.
(get_num_procs): Ditto.
* config/linux/affinity.c (gomp_init_affinity): Call
gomp_cpuset_popcount.

From-SVN: r177265

13 years ago[multiple changes]
Arnaud Charlet [Wed, 3 Aug 2011 10:45:20 +0000 (12:45 +0200)]
[multiple changes]

2011-08-03  Emmanuel Briot  <briot@adacore.com>

* make.adb, makeutl.adb, makeutl.ads, clean.adb (Makeutl.Queue): new
package.

2011-08-03  Yannick Moy  <moy@adacore.com>

* cstand.adb (Create_Standard): select Universal_Integer as an ALFA type
* sem_ch3.adb (Array_Type_Declaration): detect array types in ALFA
* sem_util.adb, sem_util.ads (Has_Static_Array_Bounds): new function to
detect that an array has static bounds.

From-SVN: r177264

13 years ago[multiple changes]
Arnaud Charlet [Wed, 3 Aug 2011 10:42:00 +0000 (12:42 +0200)]
[multiple changes]

2011-08-03  Thomas Quinot  <quinot@adacore.com>

* exp_dist.adb: Minor reformatting.

2011-08-03  Arnaud Charlet  <charlet@adacore.com>

* s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-vms.adb
(ATCB_Key): Removed, not always used.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

* gnatcmd.adb, make.adb, prj.adb, prj.ads, makeutl.adb, makeutl.ads,
clean.adb, prj-conf.adb, prj-env.adb, prj-env.ads (Makeutl): remove
most remaining global variables.

From-SVN: r177263

13 years ago[multiple changes]
Arnaud Charlet [Wed, 3 Aug 2011 10:38:26 +0000 (12:38 +0200)]
[multiple changes]

2011-08-03  Robert Dewar  <dewar@adacore.com>

* gnatcmd.adb, prj-proc.adb, mlib-prj.adb, prj.adb, makeutl.ads,
prj-util.adb, prj-util.ads, prj-conf.adb, prj-env.adb: Minor
reformatting.

2011-08-03  Javier Miranda  <miranda@adacore.com>

* exp_util.adb (Is_VM_By_Copy_Actual): Include N_Slide nodes as actuals
that must be passed by copy in VM targets.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

* prj.ads, prj-nmsc.adb (Files_Htable): removed this htable, which
duplicates a similar htable now in the project tree.

2011-08-03  Claire Dross  <dross@adacore.com>

* a-cfdlli.adb, a-cfhama.adb, a-cfhase.adb, a-cforma.adb, a-cforse.adb,
a-cofove.adb ("=", Length, Is_Empty, Clear, Assign, Copy, Element,
Replace_Element, Query_Element, Update_Element, Move, Insert, Prepend,
Append, Delete, Delete_First, Delete_Last, Reverse_Element, Swap,
Splice, First, First_Element, Last, Last_Element, Next, Previous, Find,
Reverse_Find, Contains, Has_Element, Iterate, Reverse_Iterate, Capacity,
Reserve_Length, Length, Strict_Equal, Left, Right): Data-structure
update.

2011-08-03  Arnaud Charlet  <charlet@adacore.com>

* s-taprop-posix.adb, s-taprop-linux.adb, s-taprop-tru64.adb
(ATCB_Key): Removed, not always used.
* s-tpopsp-posix.adb, s-tpopsp-posix-foreign.adb (ATCB_Key): Moved from
s-taprop-posix.adb.
* s-tpopsp-tls.adb: New file.
* gcc-interface/Makefile.in: Use TLS implementation of s-tpopsp.adb on
x86/x64/ia64/powerpc/sparc Linux.

2011-08-03  Arnaud Charlet  <charlet@adacore.com>

* system-aix.ads, system-aix64.ads: Set ZCX_By_Default to True.
* gcc-interface/Makefile.in: Switch to ZCX by default on AIX ports.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

* rtsfind.ads, exp_dist.adb, exp_dist.ads
(Build_From_Any_Call, Build_To_Any_Call, Build_TypeCode_Call):
Fix type selection for mapping integer types to PolyORB types.

2011-08-03  Bob Duff  <duff@adacore.com>

* sem_ch7.adb: Minor comment clarification.

2011-08-03  Bob Duff  <duff@adacore.com>

* sem_ch13.adb (Analyze_Enumeration_Representation_Clause): If we get
an error analyzing a choice, skip further processing. Further
processing could cause a crash or cascade errors.

From-SVN: r177262

13 years agognatcmd.adb, [...] (Shared_Project_Tree_Data): new type An aggregate project and...
Emmanuel Briot [Wed, 3 Aug 2011 10:19:32 +0000 (10:19 +0000)]
gnatcmd.adb, [...] (Shared_Project_Tree_Data): new type An aggregate project and its aggregated trees need to share the common...

2011-08-03  Emmanuel Briot  <briot@adacore.com>

* gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, mlib-prj.adb,
prj.adb, prj.ads, makeutl.adb, makeutl.ads, clean.adb, prj-nmsc.adb,
prj-util.adb, prj-util.ads, prj-conf.adb, prj-conf.ads, prj-env.adb,
prj-env.ads (Shared_Project_Tree_Data): new type
An aggregate project and its aggregated trees need to share the common
data structures used for lists of strings, packages,... This makes the
code simpler since otherwise we have to pass the root tree (also used
for the configuration file data) in addition to the current project
tree. This also avoids ambiguities as to which tree should be used.
And finally this saves a bit of memory.
(For_Every_Project_Imported): new parameter Tree.
Since aggregated projects are using a different tree, we need to let
the caller know which tree to use to manipulate the returned project.

From-SVN: r177261

13 years agoprj-proc.adb, [...]: Minor reformatting.
Robert Dewar [Wed, 3 Aug 2011 10:17:45 +0000 (10:17 +0000)]
prj-proc.adb, [...]: Minor reformatting.

2011-08-03  Robert Dewar  <dewar@adacore.com>

* prj-proc.adb, exp_util.ads, exp_ch9.adb, make.adb, prj-ext.adb,
prj-ext.ads, alfa.ads, sem_ch4.adb, makeutl.adb, makeutl.ads,
lib-xref-alfa.adb, sem_cat.adb, exp_dist.adb, get_alfa.adb,
prj-env.adb, prj-env.ads, prj-tree.adb, alfa.ads: Minor reformatting.

From-SVN: r177260

13 years ago[multiple changes]
Arnaud Charlet [Wed, 3 Aug 2011 10:10:40 +0000 (12:10 +0200)]
[multiple changes]

2011-08-03  Javier Miranda  <miranda@adacore.com>

* exp_util.adb, sem_aux.adb, exp_util.ads, sem_aux.ads:
Move routine Is_VM_By_Copy_Actual from sem_aux to exp_util.

2011-08-03  Bob Duff  <duff@adacore.com>

* sem_ch8.adb (Is_Primitive_Operator_In_Use): Always check In_Use on
the Base_Type.

2011-08-03  Joel Brobecker  <brobecker@adacore.com brobecker>

* g-sha256.ads, g-sha512.ads, g-sha1.ads, g-sha224.ads, g-sha384.ads,
g-sehash.ads: Fix typo. Update header.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

* exp_ch6.adb (Expand_Actuals): Remove Ada_2005 guard on build-in-place
expansion.

2011-08-03  Gary Dismukes  <dismukes@adacore.com>

* sem_ch4.adb (Analyze_Overloaded_Selected_Component): Consider
prefixes of private types along with records, since the selector may be
a discriminant.
* sem_res.adb (Resolve_Selected_Component): Consider prefixes of
private types along with records, since the selector may be a
discriminant.

From-SVN: r177259

13 years ago[multiple changes]
Arnaud Charlet [Wed, 3 Aug 2011 10:04:04 +0000 (12:04 +0200)]
[multiple changes]

2011-08-03  Emmanuel Briot  <briot@adacore.com>

* prj-pp.adb (Pretty_Print): remove trailing blank line in the file

2011-08-03  Javier Miranda  <miranda@adacore.com>

* sem_aux.adb (Is_VM_By_Copy_Actual): Fix wrong use of
Tagged_Type_Expansion.

2011-08-03  Yannick Moy  <moy@adacore.com>

* sem_res.adb
(Resolve_Op_Concat_Arg): do not issue a SPARK violation when argument of
concatenation is the name of a constant

From-SVN: r177258

13 years ago[multiple changes]
Emmanuel Briot [Wed, 3 Aug 2011 10:01:51 +0000 (10:01 +0000)]
[multiple changes]

2011-08-03  Yannick Moy  <moy@adacore.com>

* alfa.ads Update format of ALFA section in ALI file in order to add a
mapping from bodies to specs when both are present
(ALFA_Scope_Record): add components for spec file/scope
* get_alfa.adb (Get_ALFA): read the new file/scope for spec when present
* lib-xref-alfa.adb
(Collect_ALFA): after all scopes have been collected, fill in the spec
 information when relevant
* put_alfa.adb (Put_ALFA): write the new file/scope for spec when
present.

2011-08-03  Eric Botcazou  <ebotcazou@adacore.com>

* inline.adb (Add_Inlined_Subprogram): Do not consider the enclosing
code unit to decide whether to add internally generated subprograms.

2011-08-03  Javier Miranda  <miranda@adacore.com>

* sem_aux.ads, sem_aux.adb (Is_VM_By_Copy_Actual): New subprogram.
* exp_ch9.adb
(Build_Simple_Entry_Call): Handle actuals that must be handled by copy
in VM targets.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

* make.adb, makeutl.adb, makeutl.ads (Make.Switches_Of): now shares
code with Makeutl.Get_Switches.
* prj-tree.adb: Update comment.

From-SVN: r177257

13 years ago[multiple changes]
Arnaud Charlet [Wed, 3 Aug 2011 09:59:55 +0000 (11:59 +0200)]
[multiple changes]

2011-08-03  Yannick Moy  <moy@adacore.com>

* alfa.ads Update format of ALFA section in ALI file in order to add a
mapping from bodies to specs when both are present
(ALFA_Scope_Record): add components for spec file/scope
* get_alfa.adb (Get_ALFA): read the new file/scope for spec when present
* lib-xref-alfa.adb
(Collect_ALFA): after all scopes have been collected, fill in the spec
 information when relevant
* put_alfa.adb (Put_ALFA): write the new file/scope for spec when
present.

2011-08-03  Eric Botcazou  <ebotcazou@adacore.com>

* inline.adb (Add_Inlined_Subprogram): Do not consider the enclosing
code unit to decide whether to add internally generated subprograms.

2011-08-03  Javier Miranda  <miranda@adacore.com>

* sem_aux.ads, sem_aux.adb (Is_VM_By_Copy_Actual): New subprogram.
* exp_ch9.adb
(Build_Simple_Entry_Call): Handle actuals that must be handled by copy
in VM targets.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

* make.adb, makeutl.adb, makeutl.ads (Make.Switches_Of): now shares
code with Makeutl.Get_Switches.
* prj-tree.adb: Update comment.

From-SVN: r177256

13 years ago[multiple changes]
Arnaud Charlet [Wed, 3 Aug 2011 09:56:17 +0000 (11:56 +0200)]
[multiple changes]

2011-08-03  Eric Botcazou  <ebotcazou@adacore.com>

* inline.adb: Revert previous change.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

* sem_cat.adb (Validate_RCI_Subprogram_Declaration): Reject a remote
subprogram with a limited formal that does not support external
streaming.

2011-08-03  Yannick Moy  <moy@adacore.com>

* get_alfa.adb (Get_ALFA): add missing Skip_Spaces at start of
continuation line
* lib-xref-alfa.adb (Add_ALFA_File): split removal of scopes that are
not from current unit in two phases, because it is not possible to
change the table while iterating over its content.
* put_alfa.adb (Put_ALFA): reset current file/scope at each new entity

2011-08-03  Sergey Rybin  <rybin@adacore.com>

* vms_data.ads: Add qualifier for gnatmetric --no-static-loop option
* gnat_ugn.texi: Update description of complexity metrics (gnatmetric)

From-SVN: r177255

13 years agoinline.adb: proper handling of init_procs.
Ed Schonberg [Wed, 3 Aug 2011 09:53:11 +0000 (09:53 +0000)]
inline.adb: proper handling of init_procs.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

* inline.adb: proper handling of init_procs.
* sem_res.adb (Resolve_Op_Concat_Arg): if the argument is an aggregate
and the component type is composite, this is ambiguous for predefined
concatenation, but if the node is not overloaded and the entity is a use
-defined function its profile can be used to resolve that aggregate.

From-SVN: r177254

13 years ago[multiple changes]
Arnaud Charlet [Wed, 3 Aug 2011 09:51:09 +0000 (11:51 +0200)]
[multiple changes]

2011-08-03  Robert Dewar  <dewar@adacore.com>

* exp_ch4.adb: Minor code cleanup.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

* exp_dist.adb: Do not generate distribution stubs if serious errors
have been diagnosed.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

* sem_ch4.adb (Try_Primitive_Operation): when checking the validity of
the first formal of a primitive operation, go to the base type to
handle properly an access to a derived type with constrained
discriminants.
* sem_type.adb (Disambiguate): an immediately visible operator hides a
user-defined function that is only use-visible.
* inline.adb: init procs are inlineable.

From-SVN: r177253

13 years agosem_aggr.adb, [...]: Minor reformatting
Robert Dewar [Wed, 3 Aug 2011 09:47:07 +0000 (09:47 +0000)]
sem_aggr.adb, [...]: Minor reformatting

2011-08-03  Robert Dewar  <dewar@adacore.com>

* sem_aggr.adb, sem_ch3.adb, lib.ads, gnatcmd.adb, prj-proc.adb,
make.adb, lib-writ.adb, prj-part.adb, prj-part.ads, prj-ext.adb,
fname-uf.adb, prj-ext.ads, prj.adb, prj.ads, sem_attr.adb, alfa.adb,
prj-makr.adb, errout.adb, makeutl.adb, makeutl.ads, restrict.ads,
sem_ch6.adb, g-pehage.adb, clean.adb, put_alfa.adb, lib-xref-alfa.adb,
prj-nmsc.adb, prj-nmsc.ads, sem_ch8.adb, prj-pars.ads, exp_aggr.adb,
prj-attr.ads, sem_ch13.adb, get_alfa.adb, prj-env.adb, prj-env.ads,
alfa_test.adb, prj-tree.adb, prj-tree.ads, einfo.ads: Minor reformatting

2011-08-03  Robert Dewar  <dewar@adacore.com>

* repinfo.adb (List_Mechanism): Add handling of
Convention_Ada_Pass_By_XXX.
* sem_mech.adb (Set_Mechanism): Ditto.
* sem_prag.adb (Process_Convention): Add entries for
Convention_Ada_Pass_By_XXX.
* snames.adb-tmpl, snames.ads-tmpl: Ditto.

From-SVN: r177252

13 years ago[multiple changes]
Arnaud Charlet [Wed, 3 Aug 2011 09:43:16 +0000 (11:43 +0200)]
[multiple changes]

2011-08-03  Pascal Obry  <obry@adacore.com>

* makeutl.adb: Minor reformatting.

2011-08-03  Vincent Celier  <celier@adacore.com>

* fname-uf.adb
(Get_File_Name) If the file cannot be found when there are no config
pragmas file and May_Fail is True, return No_File instead of the file
name, to be consistent.

2011-08-03  Pascal Obry  <obry@adacore.com>

* adaint.c (__gnat_is_executable_file_attr): Avoid access
to null pointer.

2011-08-03  Javier Miranda  <miranda@adacore.com>

* sem_ch13.adb
(Same_Representation): In VM targets the representation of arrays with
aliased components differs from arrays with non-aliased components.

From-SVN: r177251

13 years agoprj-proc.adb, [...] (Get_Attribute_Index): do not systematically lower case attribute...
Emmanuel Briot [Wed, 3 Aug 2011 09:38:56 +0000 (09:38 +0000)]
prj-proc.adb, [...] (Get_Attribute_Index): do not systematically lower case attribute indexes that contain no "." Fix...

2011-08-03  Emmanuel Briot  <briot@adacore.com>

* prj-proc.adb, prj-attr.adb, prj-attr.ads (Get_Attribute_Index): do
not systematically lower case attribute indexes that contain no "."
Fix definition of several Naming attributes, which take
a unit name as index and therefore should be case insensitive.
Minor refactoring (reduce length of variable names).

2011-08-03  Emmanuel Briot  <briot@adacore.com>

* makeutl.adb, makeutl.ads (Get_Switches): new subprogram.

From-SVN: r177250

13 years agognatcmd.adb, [...] (Prj.Tree.Environment): new type.
Emmanuel Briot [Wed, 3 Aug 2011 09:36:24 +0000 (09:36 +0000)]
gnatcmd.adb, [...] (Prj.Tree.Environment): new type.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

* gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, prj-part.adb,
prj-part.ads, switch-m.adb, switch-m.ads, prj-makr.adb, clean.adb,
prj-pars.adb, prj-pars.ads, prj-conf.adb, prj-conf.ads, prj-tree.adb,
prj-tree.ads (Prj.Tree.Environment): new type.

From-SVN: r177248

13 years agoprj-proc.adb, [...] (Environment): new type.
Emmanuel Briot [Wed, 3 Aug 2011 09:30:45 +0000 (09:30 +0000)]
prj-proc.adb, [...] (Environment): new type.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

* prj-proc.adb, prj.ads, makeutl.adb, makeutl.ads, prj-conf.adb,
prj-tree.adb, prj-tree.ads (Environment): new type.

From-SVN: r177247

13 years ago[multiple changes]
Arnaud Charlet [Wed, 3 Aug 2011 09:27:50 +0000 (11:27 +0200)]
[multiple changes]

2011-08-03  Emmanuel Briot  <briot@adacore.com>

* prj-tree.ads: Remove unused variable.

2011-08-03  Yannick Moy  <moy@adacore.com>

* restrict.adb (Restriction_Msg): set "SPARK" all in upper case for
issuing messages related to SPARK restriction violation.

From-SVN: r177246

13 years ago[multiple changes]
Arnaud Charlet [Wed, 3 Aug 2011 09:26:00 +0000 (11:26 +0200)]
[multiple changes]

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

* sem_ch6.adb: guard against error nodes in return statements.

2011-08-03  Arnaud Charlet  <charlet@adacore.com>

* errout.adb (Error_Msg_Internal): the main unit has not been read yet,
a warning can only appear on a configuration file, so emit warning
without further checks.

2011-08-03  Arnaud Charlet  <charlet@adacore.com>

* s-interr.ads: add overriding keyword.

2011-08-03  Geert Bosch  <bosch@adacore.com>

* exp_attr.adb: Fix minor typo.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

* par-ch4.adb: improve error recovery.

From-SVN: r177245

13 years ago[multiple changes]
Arnaud Charlet [Wed, 3 Aug 2011 09:21:55 +0000 (11:21 +0200)]
[multiple changes]

2011-08-03  Emmanuel Briot  <briot@adacore.com>

* prj-part.adb, prj-part.ads, prj-makr.adb, prj-pars.adb, prj-conf.adb,
prj-env.adb (Prj.Part.Parse): change parameter Always_Errout_Finalize
to Errout_Handling.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

* prj-dect.adb (Parse_Attribute_Declaration): make sure we can use
"external" as an attribute name in aggregate projects.

2011-08-03  Jose Ruiz  <ruiz@adacore.com>

* s-taprop-vxworks.adb: (Create_Task, Initialize): Ada 2012 pragma CPU
uses CPU numbers starting 1, while VxWorks uses CPU numbers starting
from 0, so we need to adjust.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

* prj-proc.adb, prj-ext.adb, prj-ext.ads, makeutl.adb, prj-tree.adb,
prj-tree.ads, gnatcmd.adb, clean.adb (External_References): new type.

From-SVN: r177244

13 years ago[multiple changes]
Arnaud Charlet [Wed, 3 Aug 2011 09:17:28 +0000 (11:17 +0200)]
[multiple changes]

2011-08-03  Yannick Moy  <moy@adacore.com>

* sem_ch6.adb (New_Overloaded_Entity): only issue error for SPARK
restriction on overloaded entity if the entity is not an operator.

2011-08-03  Yannick Moy  <moy@adacore.com>

* sem_ch7.adb, sem_res.adb, sem_attr.adb, restrict.adb,
restrict.ads: Rename remaining Check_Formal_Restriction* into
Check_SPARK_Restriction*.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

* prj-proc.adb, prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb,
prj-nmsc.ads, prj-err.adb (Project_Data): now discriminated on its
qualifier.
(Project_Empty): removed
(Empty_Project): new parameter Qualifier
This is used to have fields specific to aggregate projects, cleaner
New field to store the list of aggregated projects.
(Check_Aggregate_Project): removed
(Process_Aggregated_Projects, Free): new subprograms.

From-SVN: r177243

13 years ago[multiple changes]
Arnaud Charlet [Wed, 3 Aug 2011 08:32:57 +0000 (10:32 +0200)]
[multiple changes]

2011-08-03  Olivier Hainque  <hainque@adacore.com>

* tracebak.c (STOP_FRAME ppc AIX): Stop at null return address as well.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

* sem_ch8.adb (Analyze_Object_Renaming): if the renamed object is an
explicit dereference of an unconstrained type, create a constrained
subtype for it, as is done for function calls that return an
unconstrained type.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

* g-pehage.adb (Finalize): Avoid possible double-free.

2011-08-03  Steve Baird  <baird@adacore.com>

* exp_attr.adb (Expand_N_Attribute_Reference): Don't expand
Elab_Spec/Body attrs in CodePeer_Mode.

2011-08-03  Javier Miranda  <miranda@adacore.com>

* exp_aggr.adb (Flatten): Convert to positional form aggregates whose
low bound is not known at compile time but they have no others choice.
Done because in this case the bounds can be obtained directly from the
aggregate.

2011-08-03  Ed Falis  <falis@adacore.com>

* s-tasinf-vxworks.ads: Update comment to reflect 0 indexing of CPUs
on VxWorks SMP. Remove unusable constant ANY_CPU.

From-SVN: r177242

13 years agognatcmd.adb, [...] (Prj.Env.Initialize_Default_Project_Path, [...]): new subprograms
Emmanuel Briot [Wed, 3 Aug 2011 08:28:47 +0000 (08:28 +0000)]
gnatcmd.adb, [...] (Prj.Env.Initialize_Default_Project_Path, [...]): new subprograms

2011-08-03  Emmanuel Briot  <briot@adacore.com>

* gnatcmd.adb, make.adb, prj-part.adb, prj-part.ads, prj-makr.adb,
clean.adb, prj-nmsc.adb, prj-pars.adb, prj-conf.adb, prj-env.adb,
prj-env.ads (Prj.Env.Initialize_Default_Project_Path,
Prj.Env.Initialize_Empty): new subprograms
(Get_Env, Find_Project): remove parameter Target_Name.

From-SVN: r177241

13 years ago[multiple changes]
Arnaud Charlet [Wed, 3 Aug 2011 08:26:17 +0000 (10:26 +0200)]
[multiple changes]

2011-08-03  Gary Dismukes  <dismukes@adacore.com>

* sem_ch3.adb (Build_Derived_Record_Type): Test the Derive_Subps formal
as a condition for the delayed call to Derived_Subprograms done for the
case of the rewriting of a derived type that constrains the
discriminants of its parent type.
Avoids redundant subprogram derivations for private subtype derivations.

2011-08-03  Javier Miranda  <miranda@adacore.com>

* exp_aggr.adb (Init_Hidden_Discriminants): New subprogram of
Build_Record_Aggr_Code.
(Build_Record_Aggr_Code): Add missing support to initialize hidden
discriminants in extension aggregates.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

* prj-pp.adb (Print): also output project qualifiers, since in
particular "aggregate" is mandatory in an aggregate project.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

* prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-env.adb:
(Debug_Output): new function.

From-SVN: r177240

13 years ago[multiple changes]
Arnaud Charlet [Wed, 3 Aug 2011 08:22:52 +0000 (10:22 +0200)]
[multiple changes]

2011-08-03  Eric Botcazou  <ebotcazou@adacore.com>

* gnat_ugn.texi: Document -Wstack-usage.
* gcc-interface/misc.c (enumerate_modes): Add guard for ghost FP modes.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

* sem_prag.adb Issue an error (not a warning) when a C++ type does not
have keyword LIMITED.

2011-08-03  Yannick Moy  <moy@adacore.com>

* alfa.adb, alfa.ads, alfa_test.adb: New files.
* ali.adb (Known_ALI_Lines): add 'C' lines (SCO) and 'F' lines (ALFA)
(Scan_ALI): do not issue a fatal error if parsing known lines after Xref
section (does not happen in compiler, only if code directly calls
Scan_ALI).
* get_alfa.adb, get_alfa.ads: New files.
* lib-writ.adb, lib-writ.ads (Write_ALI): output ALFA information if
needed.
* lib-xref-alfa.adb: New file.
* lib-xref.adb, lib-xref.ads
(Xref_Entry): redefine information needed in cross-references for ALFA.
Push ALFA treatments in separated local package.
(Enclosing_Subpragram_Or_Package): treat specially subprogram
identifiers. Return entity of package body instead of spec. Return
Empty for a scope with no location.
(Generate_Reference): adapt to new components for ALFA information.
Remove the need for D references on definitions.
(Is_Local_Reference): moved to ALFA local package
(Output_References): extract subfunction as Extract_Source_Name
(Output_Local_References): remove procedure, replaced by filtering of
cross-references in package ALFA and printing in Put_ALFA.
(Write_Entity_Name): remove procedure
* lib.adb, lib.ads (Extract_Source_Name): extract here function to
print exact name of entity as it appears in source file
(Unit_Ref_Table): make type public for use in Lib.Xref.ALFA
* put_alfa.adb, put_alfa.ads: New files.
* xref_lib.adb (Search_Xref): protect read of cross-references against
reading other sections of the ALI file, in gnatxref
(Search): protect read of cross-references against reading other
sections of the ALI file, in gnatfind.
* gcc-interface/Make-lang.in: Update dependencies.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

* sem_ch3.adb: Minor reformatting.

2011-08-03  Jose Ruiz  <ruiz@adacore.com>

* s-inmaop-vxworks.adb (Setup_Interrupt_Mask): Do nothing instead of
raising an exception.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

* sem_res.adb (Set_String_Literal_Subtype): if index type is an integer
type, always use 1 as the lower bound or string, even if lower bound of
context is not static, to handle properly null strings in a non-static
context.

2011-08-03  Bob Duff  <duff@adacore.com>

* sem_prag.adb (Resolve_Aggregate): An array aggregate with 'others' is
always legal on the right-hand side of an assignment statement; there
is always an applicable index constraint in this case. Therefore, the
check for Pkind = N_Assignment_Statement is now unconditional -- it
doesn't depend on whether Is_Constrained (Typ).

From-SVN: r177239

13 years ago[multiple changes]
Arnaud Charlet [Wed, 3 Aug 2011 08:11:09 +0000 (10:11 +0200)]
[multiple changes]

2011-08-03  Robert Dewar  <dewar@adacore.com>

* exp_ch5.adb, sem_prag.adb, exp_ch4.adb: Minor reformatting.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

* sem_ch3.adb (Build_Itype_Reference): do not create an itype reference
for an itype created within a generic unit.

2011-08-03  Eric Botcazou  <ebotcazou@adacore.com>

* gnat_ugn.texi (Switches for gcc): Make it clearer that -fno-inline
suppresses all inlining.

From-SVN: r177238

13 years ago[multiple changes]
Arnaud Charlet [Wed, 3 Aug 2011 08:08:31 +0000 (10:08 +0200)]
[multiple changes]

2011-08-03  Robert Dewar  <dewar@adacore.com>

* sem_ch3.adb, sem_res.adb, exp_ch13.adb, exp_disp.adb,
exp_aggr.adb: Minor reformatting.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

* exp_ch5.adb (Expand_N_Assignment_Statement): Do not force inlining of
tagged assignment when discriminant checks are suppressed. This is
useless and extremely costly in terms of static stack usage.

2011-08-03  Bob Duff  <duff@adacore.com>

* sem_prag.adb (Get_Base_Subprogram): Do not follow Alias for instances
of generics, because this leads to the wrong entity in the wrong scope,
causing (e.g.) pragma Export_Procedure to get an error if the entity is
an instance.
(Process_Interface_Name): Follow Alias for instances of generics, to
correct for the above change.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

* exp_ch4.adb (Expand_N_Selected_Component): If the discriminant value
is an integer literal it is always safe to replace the reference. In
addition, if the reference appears in the generated code for an object
declaration it is necessary to copy because otherwise the reference
might be to the uninitilized value of the discriminant of the object
itself.

2011-08-03  Pascal Obry  <obry@adacore.com>

* adaint.c (__gnat_is_executable_file_attr): Fix Win32 circuitry when no
ACL used, in this case we want to check for ending .exe, not .exe
anywhere in the path.

2011-08-03  Sergey Rybin  <rybin@adacore.com>

* tree_io.ads (ASIS_Version_Number): Update because of the changes in
the tree structure (semantic decoration of references to record
discriminants).

From-SVN: r177237

13 years ago[multiple changes]
Arnaud Charlet [Wed, 3 Aug 2011 08:02:56 +0000 (10:02 +0200)]
[multiple changes]

2011-08-03  Gary Dismukes  <dismukes@adacore.com>

* sem_aggr.adb (Analyze_Array_Aggregate): When checking the discrete
choices of a named array aggregate, bail out when any choices are
marked as Errors_Posted.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

* exp_ch13.adb (Expand_N_Freeze_Entity): cleanup determination of scope
in which entity is frozen, to handle properly loop variables in
iterators.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

* sem_res.adb (Set_String_Literal_Subtype): if the lower bound of the
subtype is not static, compute the upper bound using attributes, to
handle properly index types that are not integer types.

2011-08-03  Bob Duff  <duff@adacore.com>

* gnat_rm.texi, gnat_ugn.texi: Fix some dangling URLs.
Update copyright notice.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

* sem_ch3.adb (Build_Discriminant_Constraints): Only use
Original_Discriminant if within an instance.
* sem_ch4.adb (Analyze_Selected_Component): Ditto.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

* einfo.ads: Minor reformatting.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

* exp_disp.adb (Check_Premature_Freezing): diagnose the presence of a
composite type with an unfrozen subcomponent, in the profile of a
primitive operation.

From-SVN: r177236

13 years agoOptimize stage count
Revital Eres [Wed, 3 Aug 2011 07:59:23 +0000 (07:59 +0000)]
Optimize stage count

From-SVN: r177235

13 years ago[multiple changes]
Arnaud Charlet [Wed, 3 Aug 2011 07:52:00 +0000 (09:52 +0200)]
[multiple changes]

2011-08-03  Robert Dewar  <dewar@adacore.com>

* sem_util.ads, exp_aggr.adb, exp_ch3.adb: Minor reformatting.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

* sem_ch3.adb (Analyze_Object_Declaration): if a constant object of an
unconstrained type with discriminants is initialized with an aggregate,
use the constrained subtype of the aggregate as the type of the object,
because it is immutable, and this allows the back-end to generate no
code for the object declaration.

From-SVN: r177234

13 years ago[multiple changes]
Arnaud Charlet [Wed, 3 Aug 2011 07:45:36 +0000 (09:45 +0200)]
[multiple changes]

2011-08-03  Robert Dewar  <dewar@adacore.com>

* exp_ch4.adb (Optimize_Length_Check): Fix bad handling of case where
comparison operand is variable, and turns out to be zero or negative.

2011-08-03  Javier Miranda  <miranda@adacore.com>

* exp_intr.adb
(Expand_Dispatching_Constructor_Call): Disable expansion of
code required for native targets. Done to avoid generating
references to unavailable runtime entities in VM targets.
* exp_ch3.adb
(Expand_N_Object_Declaration): Add missing support to handle
the explicit initialization of class-wide interface objects.
Fix documentation.

2011-08-03  Matthew Heaney  <heaney@adacore.com>

* a-cobove.adb (Merge): Move source onto target, instead of using Assign

2011-08-03  Matthew Heaney  <heaney@adacore.com>

* a-cbdlli.adb (Splice): move source items from first to last

2011-08-03  Yannick Moy  <moy@adacore.com>

* sem_util.ads: comment added.

2011-08-03  Javier Miranda  <miranda@adacore.com>

* exp_aggr.adb
(Expand_Record_Aggregate): In VM targets disable the expansion into
assignments of aggregates whose type is not known at compile time.

From-SVN: r177233

13 years agoexp_ch9.adb (Build_Renamed_Formal_Declaration): common procedure for protected entrie...
Ed Schonberg [Wed, 3 Aug 2011 07:37:15 +0000 (07:37 +0000)]
exp_ch9.adb (Build_Renamed_Formal_Declaration): common procedure for protected entries and task entries...

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

* exp_ch9.adb (Build_Renamed_Formal_Declaration): common procedure for
protected entries and task entries, to build the proper renaming
declaration for entry formals, used in debugging.
* exp_ch2.adb (Expand_Entry_Parameter): handle task and entry
parameters in the same way.

From-SVN: r177232

13 years agoUpdate x32 __NR_rt_sigreturn system call number.
H.J. Lu [Wed, 3 Aug 2011 04:59:41 +0000 (04:59 +0000)]
Update x32 __NR_rt_sigreturn system call number.

2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>

* config/i386/linux-unwind.h (RT_SIGRETURN_SYSCALL): New.
(x86_64_fallback_frame_state): Use RT_SIGRETURN_SYSCALL and
long long to check rt_sigreturn syscall.

From-SVN: r177229

13 years agogccgo: Added code to dump the AST tree.
Roberto Lublinerman [Wed, 3 Aug 2011 00:37:26 +0000 (00:37 +0000)]
gccgo: Added code to dump the AST tree.

gccgo: Added code to dump the AST tree. The AST dump is
activated with -fgo-dump-ast.
Initial version, it only dumps (most) constructs that
are expected after the lowering transformation.

* Make-lang.in (GO_OBJS): Add go/ast-dump.o.
(go/ast-dump.o): New target.
(go/expressions.o): Depend on go/gofrontend/ast-dump.h.
(go/statements.o): Likewise.

From-SVN: r177225

13 years agoDaily bump.
GCC Administrator [Wed, 3 Aug 2011 00:18:01 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r177224

13 years agoAdd another PR tag.
Richard Henderson [Tue, 2 Aug 2011 22:20:17 +0000 (15:20 -0700)]
Add another PR tag.

From-SVN: r177219

13 years agore PR debug/49864 (ICE: in maybe_record_trace_start, at dwarf2cfi.c:2439)
Richard Henderson [Tue, 2 Aug 2011 22:18:35 +0000 (15:18 -0700)]
re PR debug/49864 (ICE: in maybe_record_trace_start, at dwarf2cfi.c:2439)

PR target/49864
* reg-notes.def (REG_ARGS_SIZE): New.
* calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
(expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
* cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
different stack levels.
* combine-stack-adj.c (adjust_frame_related_expr): Remove.
(maybe_move_args_size_note): New.
(combine_stack_adjustments_for_block): Use it.
* combine.c (distribute_notes): Place REG_ARGS_SIZE.
* dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
(dw_trace_info): Add beg_true_args_size, end_true_args_size,
beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
(cur_cfa): New.
(queued_args_size): Remove.
(add_cfi_args_size): Assert size is non-negative.
(stack_adjust_offset, dwarf2out_args_size): Remove.
(dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
(notice_args_size, notice_eh_throw): New.
(dwarf2out_frame_debug_def_cfa): Use cur_cfa.
(dwarf2out_frame_debug_adjust_cfa): Likewise.
(dwarf2out_frame_debug_cfa_offset): Likewise.
(dwarf2out_frame_debug_expr): Likewise.  Don't stack_adjust_offset.
(dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
(change_cfi_row): Don't emit args_size.
(maybe_record_trace_start_abnormal): Split out from ...
(maybe_record_trace_start): Here.  Set args_size_undefined.
(create_trace_edges): Update to match.
(scan_trace): Handle REG_ARGS_SIZE.
(connect_traces): Connect args_size between EH insns.
* emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
* explow.c (suppress_reg_args_size): New.
(adjust_stack_1): Split out from ...
(adjust_stack): ... here.
(anti_adjust_stack): Use it.
(allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
* expr.c (mem_autoinc_base): New.
(fixup_args_size_notes): New.
(emit_single_push_insn_1): Rename from emit_single_push_insn.
(emit_single_push_insn): New.  Generate REG_ARGS_SIZE.
* recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
* reload1.c (reload_as_needed): Likewise.
* rtl.h (fixup_args_size_notes): Declare.

From-SVN: r177218

13 years agoFix my last changelog entry.
Richard Henderson [Tue, 2 Aug 2011 21:23:58 +0000 (14:23 -0700)]
Fix my last changelog entry.

From-SVN: r177217

13 years agore PR c++/43886 ([C++0x] name lookup failure on un-used local variable in lambda...
Jason Merrill [Tue, 2 Aug 2011 21:09:26 +0000 (17:09 -0400)]
re PR c++/43886 ([C++0x] name lookup failure on un-used local variable in lambda compound-statement)

PR c++/43886
* parser.c (cp_parser_lambda_body): Clear local_variables_forbidden_p.

From-SVN: r177216

13 years agore PR c++/49577 ([C++0x] narrowing conversion not rejected)
Jason Merrill [Tue, 2 Aug 2011 21:09:17 +0000 (17:09 -0400)]
re PR c++/49577 ([C++0x] narrowing conversion not rejected)

PR c++/49577
* typeck2.c (check_narrowing): Check unsigned mismatch.
* semantics.c (finish_compound_literal): check_narrowing.

From-SVN: r177215

13 years agore PR c++/49593 ([C++0x] cannot use T{t}... as pack expansion)
Jason Merrill [Tue, 2 Aug 2011 21:09:08 +0000 (17:09 -0400)]
re PR c++/49593 ([C++0x] cannot use T{t}... as pack expansion)

PR c++/49593
* pt.c (find_parameter_packs_r): Handle CONSTRUCTOR.

From-SVN: r177214

13 years agore PR c++/49803 ([C++0x] erroneous variant-member initialization in a union containin...
Jason Merrill [Tue, 2 Aug 2011 21:08:57 +0000 (17:08 -0400)]
re PR c++/49803 ([C++0x] erroneous variant-member initialization in a union containing an anonymous struct)

PR c++/49803
* init.c (sort_mem_initializers): Initialize uses_unions_p here.
(build_field_list): Not here.

From-SVN: r177213

13 years agore PR bootstrap/49914 (call to abs(long long) in gcc/fold-const.c)
Paolo Carlini [Tue, 2 Aug 2011 20:26:57 +0000 (20:26 +0000)]
re PR bootstrap/49914 (call to abs(long long) in gcc/fold-const.c)

2011-08-02  Paolo Carlini  <paolo.carlini@oracle.com>

PR bootstrap/49914
* fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
of abs.
* tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
* tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.

From-SVN: r177212

13 years agore PR fortran/49885 (Segmentation fault when writing to an automatic character array)
Daniel Kraft [Tue, 2 Aug 2011 20:10:13 +0000 (22:10 +0200)]
re PR fortran/49885 (Segmentation fault when writing to an automatic character array)

2011-08-02  Daniel Kraft  <d@domob.eu>

PR fortran/49885
* trans-array.c (gfc_trans_auto_array_allocation): Change
gfc_start_block to gfc_init_block to avoid spurious extra-scope.

2011-08-02  Daniel Kraft  <d@domob.eu>

PR fortran/49885
* gfortran.dg/auto_char_dummy_array_3.f90: New test.

From-SVN: r177211

13 years agoh8300: Generate correct unwind info around swap_into/out_of_er6.
Richard Henderson [Tue, 2 Aug 2011 19:56:29 +0000 (12:56 -0700)]
h8300: Generate correct unwind info around swap_into/out_of_er6.

Minimal bug fix is to unset RTX_FRAME_RELATED_P on the PUSH
insn generated in h8300_swap_into_er6.  But with a tiny bit
of effort we can generate real unwind info around the sequence.

From-SVN: r177209

13 years agore PR middle-end/49947 (FAIL: gcc.dg/tree-ssa/forwprop-15.c)
Kai Tietz [Tue, 2 Aug 2011 19:31:30 +0000 (21:31 +0200)]
re PR middle-end/49947 (FAIL: gcc.dg/tree-ssa/forwprop-15.c)

2011-08-02  Kai Tietz  <ktietz@redhat.com>

PR middle-end/49947
* gcc.dg/tree-ssa/forwprop-15.c

From-SVN: r177205

13 years agoFix a typo in host_detect_local_cpu.
H.J. Lu [Tue, 2 Aug 2011 19:23:10 +0000 (19:23 +0000)]
Fix a typo in host_detect_local_cpu.

2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>

* config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.

From-SVN: r177204

13 years agore PR target/49878 ([h8300] ICE in based_loc_descr, at dwarf2out.c:10478)
Richard Henderson [Tue, 2 Aug 2011 18:48:00 +0000 (11:48 -0700)]
re PR target/49878 ([h8300] ICE in based_loc_descr, at dwarf2out.c:10478)

PR target/49878
h8300: Don't allow eliminable registers to be pushed.

From-SVN: r177200

13 years agore PR c++/49834 ([C++0x] type deduction in for-each loop in template function)
Jason Merrill [Tue, 2 Aug 2011 18:08:58 +0000 (14:08 -0400)]
re PR c++/49834 ([C++0x] type deduction in for-each loop in template function)

PR c++/49834
* parser.c (build_range_temp): Split out from...
(cp_convert_range_for): ...here.
(do_range_for_auto_deduction): New.
(cp_parser_range_for): Use it.

From-SVN: r177199

13 years agotrans-array.c (gfc_array_allocate): Pass token to gfc_allocate_allocatable for -fcoar...
Tobias Burnus [Tue, 2 Aug 2011 18:07:52 +0000 (20:07 +0200)]
trans-array.c (gfc_array_allocate): Pass token to gfc_allocate_allocatable for -fcoarray=lib.

2011-08-02  Tobias Burnus  <burnus@net-b.de>

        * trans-array.c (gfc_array_allocate): Pass token to
          gfc_allocate_allocatable for -fcoarray=lib.
        * trans-stmt.c (gfc_trans_allocate): Update
        gfc_allocate_allocatable call.
        * trans.h (gfc_allocate_allocatable): Update prototype.
        (gfc_allocate_using_lib): Remove.
        * trans.c (gfc_allocate_using_lib): Make static, handle
        token.
        (gfc_allocate_allocatable): Ditto.

2011-08-02  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/coarray_lib_token_3.f90: New.

From-SVN: r177198

13 years agore PR target/49881 ([AVR] Inefficient stack manipulation around calls)
Richard Henderson [Tue, 2 Aug 2011 17:38:16 +0000 (10:38 -0700)]
re PR target/49881 ([AVR] Inefficient stack manipulation around calls)

PR target/49881
        * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.

From-SVN: r177196

13 years agobackport: re PR fortran/46752 (OpenMP - Seg fault for unallocated allocatable array...
Jakub Jelinek [Tue, 2 Aug 2011 16:13:29 +0000 (18:13 +0200)]
backport: re PR fortran/46752 (OpenMP - Seg fault for unallocated allocatable array in firstprivate clause)

Merge from gomp-3_1-branch branch:

2011-08-02  Jakub Jelinek  <jakub@redhat.com>

gcc/
* c-parser.c (enum c_parser_prec): New enum, moved from within
c_parser_binary_expression.
(c_parser_binary_expression): Add PREC argument.  Stop parsing
if operator has lower or equal precedence than PREC.
(c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
callers.
(c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
Adjust c_finish_omp_atomic caller.
(c_parser_omp_taskyield): New function.
(c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
(c_parser_omp_clause_name): Handle final and mergeable clauses.
(c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
functions.
(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
and PRAGMA_OMP_CLAUSE_MERGEABLE.
(OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
(c_parser_omp_clause_reduction): Handle min and max.
* c-typeck.c (c_finish_omp_clauses): Don't complain about
const qualified predetermined vars in firstprivate clause.
andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
Handle MIN_EXPR and MAX_EXPR.
* tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
and OMP_CLAUSE_MERGEABLE.
(dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
and OMP_ATOMIC_CAPTURE_NEW.
* tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
OMP_CLAUSE_MERGEABLE.
(omp_clause_code_name): Likewise.
(walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
* tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
and OMP_CLAUSE_MERGEABLE.
(OMP_CLAUSE_FINAL_EXPR): Define.
* omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
OMP_CLAUSE_MERGEABLE.
(expand_task_call): Likewise.
(expand_omp_atomic_load, expand_omp_atomic_store): New functions.
(expand_omp_atomic_fetch_op): Handle cases where old or new
value is needed afterwards.
(expand_omp_atomic): Call expand_omp_atomic_load resp.
expand_omp_atomic_store.
* gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
(gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
* tree-nested.c (convert_nonlocal_omp_clauses,
convert_local_omp_clauses): Likewise.
* tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
OMP_ATOMIC_CAPTURE_NEW): New.
* gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
(gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
New inlines.
* omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
* doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
gcc/c-family/
* c-common.h (c_finish_omp_atomic): Adjust prototype.
(c_finish_omp_taskyield): New prototype.
* c-omp.c (c_finish_omp_atomic): Add OPCODE, V, LHS1 and RHS1
arguments. Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and
OMP_ATOMIC_CAPTURE_NEW in addition to OMP_ATOMIC.  If LHS1
or RHS1 have side-effects, evaluate those too in the right spot,
if it is a decl and LHS is also a decl, error out if they
aren't the same.
(c_finish_omp_taskyield): New function.
* c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP to 201107.
* c-pragma.c (omp_pragmas): Add taskyield.
* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_TASKYIELD.
(enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_FINAL and
PRAGMA_OMP_CLAUSE_MERGEABLE.
gcc/cp/
* cp-tree.h (finish_omp_atomic): Adjust prototype.
(cxx_omp_const_qual_no_mutable): New prototype.
(finish_omp_taskyield): New prototype.
* parser.c (cp_parser_omp_atomic): (cp_parser_omp_atomic): Handle
parsing OpenMP 3.1 atomics.  Adjust finish_omp_atomic caller.
(cp_parser_omp_clause_name): Handle final and mergeable clauses.
(cp_parser_omp_clause_final, cp_parser_omp_clause_mergeable): New
functions.
(cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
and PRAGMA_OMP_CLAUSE_MERGEABLE.
(OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
(cp_parser_omp_taskyield): New function.
(cp_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
(cp_parser_omp_clause_reduction): Handle min and max.
* pt.c (tsubst_expr) <case OMP_ATOMIC>: Handle OpenMP 3.1 atomics.
(tsubst_omp_clauses): Handle OMP_CLAUSE_FINAL and
OMP_CLAUSE_MERGEABLE.
* semantics.c (finish_omp_atomic): Add OPCODE, V, LHS1 and RHS1
arguments.  Handle OpenMP 3.1 atomics.  Adjust c_finish_omp_atomic
caller.
(finish_omp_clauses): Don't complain about const qualified
predetermined vars and static data members in firstprivate clause.
Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. Handle MIN_EXPR
and MAX_EXPR.
(finish_omp_taskyield): New function.
* cp-gimplify.c (cxx_omp_const_qual_no_mutable): New function.
(cxx_omp_predetermined_sharing): Use it.
gcc/fortran/
PR fortran/46752
* cpp.c (cpp_define_builtins): Change _OPENMP to 201107.
* openmp.c (gfc_free_omp_clauses): Free also final_expr.
(OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE): Define.
(gfc_match_omp_clauses): Handle parsing final and mergeable
clauses.
(OMP_TASK_CLAUSES): Allow final and mergeable clauses.
(gfc_match_omp_taskyield): New function.
(resolve_omp_clauses): Resolve final clause.  Allow POINTERs and
Cray pointers in clauses other than REDUCTION.
(gfc_match_omp_atomic): Match optional
read/write/update/capture keywords after !$omp atomic.
(resolve_omp_atomic): Handle all OpenMP 3.1 atomic forms.
* dump-parse-tree.c (show_omp_node): Handle EXEC_OMP_TASKYIELD,
print final and mergeable clauses.
(show_code_node): Handle EXEC_OMP_TASKYIELD.
* trans-openmp.c (gfc_trans_omp_clauses): Handle final and
mergeable clauses.
(gfc_trans_omp_taskyield): New function.
(gfc_trans_omp_directive): Handle EXEC_OMP_TASKYIELD.
(gfc_trans_omp_atomic): Handle all OpenMP 3.1 atomic forms.
(gfc_omp_clause_copy_ctor): Handle non-allocated allocatable.
(gfc_omp_predetermined_sharing): Adjust comment.
* gfortran.h (gfc_statement): Add ST_OMP_TASKYIELD and
ST_OMP_END_ATOMIC.
(gfc_omp_clauses): Add final_expr and mergeable fields.
(gfc_exec_op): Add EXEC_OMP_TASKYIELD.
(gfc_omp_atomic_op): New enum typedef.
(struct gfc_code): Add ext.omp_atomic.
* trans.c (trans_code): Handle EXEC_OMP_TASKYIELD.
* frontend-passes.c (gfc_code_walker): Also walk final_expr.
* resolve.c (gfc_resolve_blocks, resolve_code): Handle
EXEC_OMP_TASKYIELD.
* st.c (gfc_free_statement): Likewise.
* match.h (gfc_match_omp_taskyield): New prototype.
* parse.c (decode_omp_directive): Handle taskyield directive.
Handle !$omp end atomic.
(case_executable): Add ST_OMP_TASKYIELD case.
(gfc_ascii_statement): Handle ST_OMP_TASKYIELD.
(parse_omp_atomic): Return gfc_statement instead of void.
For !$omp atomic capture parse two assignments instead of
just one and require !$omp end atomic afterwards, for
other !$omp atomic forms just allow !$omp end atomic at the
end.
(parse_omp_structured_block, parse_executable): Adjust
parse_omp_atomic callers.

2011-08-02  Tobias Burnus  <burnus@net-b.de>

* intrinsic.c (OMP_LIB): Updated openmp_version's
value to 201107.
* gfortran.texi (OpenMP): Update ref to OpenMP 3.1.
* intrinsic.texi (OpenMP Modules): Update ref to OpenMP 3.1;
remove deleted omp_integer_kind and omp_logical_kind constants.
gcc/testsuite/
PR fortran/46752
* gcc.dg/gomp/atomic-5.c: Adjust expected diagnostics.
* gcc.dg/gomp/atomic-15.c: New test.
* g++.dg/gomp/atomic-5.C: Adjust expected diagnostics.
* g++.dg/gomp/atomic-15.C: New test.
* g++.dg/gomp/private-1.C: New test.
* g++.dg/gomp/sharing-2.C: New test.
* gfortran.dg/gomp/crayptr1.f90: Don't expect error
about Cray pointer in FIRSTPRIVATE/LASTPRIVATE.
* gfortran.dg/gomp/omp_atomic2.f90: New test.
libgomp/
PR fortran/42041
PR fortran/46752
* omp.h.in (omp_in_final): New prototype.
* omp_lib.f90.in (omp_in_final): New interface.
(omp_integer_kind, omp_logical_kind): Remove
and replace all its uses in the module with 4.
(openmp_version): Change to 201107.
* omp_lib.h.in (omp_sched_static, omp_sched_dynamic,
omp_sched_guided, omp_sched_auto): Use omp_sched_kind
kind for the parameters.
(omp_in_final): New external.
(openmp_version): Change to 201107.
* task.c (omp_in_final): New function.
(gomp_init_task): Initialize final_task.
(GOMP_task): Remove unused attribute from flags.  Handle final
tasks.
(GOMP_taskyield): New function.
(omp_in_final): Return true if if (false) or final (true) task
or descendant of final (true).
* fortran.c (omp_in_final_): New function.
* libgomp.map (OMP_3.1): Export omp_in_final and omp_in_final_.
(GOMP_3.0): Export GOMP_taskyield.
* env.c (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New
variables.
(parse_unsigned_long_list): New function.
(initialize_env): Use it for OMP_NUM_THREADS.  Call parse_boolean
with "OMP_PROC_BIND".  If OMP_PROC_BIND=true, call gomp_init_affinity
even if parse_affinity returned false.
* config/linux/affinity.c (gomp_init_affinity): Handle
gomp_cpu_affinity_len == 0.
* libgomp_g.h (GOMP_taskyield): New prototype.
* libgomp.h (struct gomp_task): Add final_task field.
(gomp_nthreads_var_list, gomp_nthreads_var_list_len): New externs.
* team.c (gomp_team_start): Override new task's nthreads_var icv
if list form OMP_NUM_THREADS has been used and it has value for
the new nesting level.

* testsuite/libgomp.c/atomic-11.c: New test.
* testsuite/libgomp.c/atomic-12.c: New test.
* testsuite/libgomp.c/atomic-13.c: New test.
* testsuite/libgomp.c/atomic-14.c: New test.
* testsuite/libgomp.c/reduction-6.c: New test.
* testsuite/libgomp.c/task-5.c: New test.
* testsuite/libgomp.c++/atomic-2.C: New test.
* testsuite/libgomp.c++/atomic-3.C: New test.
* testsuite/libgomp.c++/atomic-4.C: New test.
* testsuite/libgomp.c++/atomic-5.C: New test.
* testsuite/libgomp.c++/atomic-6.C: New test.
* testsuite/libgomp.c++/atomic-7.C: New test.
* testsuite/libgomp.c++/atomic-8.C: New test.
* testsuite/libgomp.c++/atomic-9.C: New test.
* testsuite/libgomp.c++/task-8.C: New test.
* testsuite/libgomp.c++/reduction-4.C: New test.
* testsuite/libgomp.fortran/allocatable7.f90: New test.
* testsuite/libgomp.fortran/allocatable8.f90: New test.
* testsuite/libgomp.fortran/crayptr3.f90: New test.
* testsuite/libgomp.fortran/omp_atomic3.f90: New test.
* testsuite/libgomp.fortran/omp_atomic4.f90: New test.
* testsuite/libgomp.fortran/pointer1.f90: New test.
* testsuite/libgomp.fortran/pointer2.f90: New test.
* testsuite/libgomp.fortran/task4.f90: New test.

2011-08-02  Tobias Burnus  <burnus@net-b.de>

* libgomp.texi: Update OpenMP spec references to 3.1.
(omp_in_final,OMP_PROC_BIND): New sections.
(OMP_NUM_THREADS): Document that the value can be now a list.
(GOMP_STACKSIZE,GOMP_CPU_AFFINITY): Update @ref.

From-SVN: r177194

13 years agoNew file.
Arnaud Charlet [Tue, 2 Aug 2011 15:53:12 +0000 (17:53 +0200)]
New file.

From-SVN: r177193

13 years agoMinor reformatting.
Arnaud Charlet [Tue, 2 Aug 2011 15:52:59 +0000 (17:52 +0200)]
Minor reformatting.

From-SVN: r177192

13 years agoUpdate dependencies
Arnaud Charlet [Tue, 2 Aug 2011 15:49:38 +0000 (17:49 +0200)]
Update dependencies

From-SVN: r177191

13 years ago[multiple changes]
Arnaud Charlet [Tue, 2 Aug 2011 15:47:39 +0000 (17:47 +0200)]
[multiple changes]

2011-08-02  Robert Dewar  <dewar@adacore.com>

* a-direct.adb, sinfo.ads, exp_ch9.adb, scng.adb, sem_util.adb,
sem_util.ads, restrict.ads, par-prag.adb: Minor reformatting and/or
code reorganization.

2011-08-02  Robert Dewar  <dewar@adacore.com>

* debug.adb: Debug flag d.P to suppress length comparison optimization
* exp_ch4.adb (Optimize_Length_Comparison): New routine to optimize
comparison of Length by comparing First/Last instead.

2011-08-02  Matthew Heaney  <heaney@adacore.com>

* a-cobove.ads: Code clean up.

From-SVN: r177190

13 years ago[multiple changes]
Arnaud Charlet [Tue, 2 Aug 2011 15:36:49 +0000 (17:36 +0200)]
[multiple changes]

2011-08-02  Vincent Celier  <celier@adacore.com>

* adaint.c (file_names_case_sensitive_cache): New static int.
(__gnat_get_file_names_case_sensitive): Cache the return value in
file_names_case_sensitive_cache at the first invocation, to avoid
multiple calls to getenv.

2011-08-02  Bob Duff  <duff@adacore.com>

* sem_ch12.adb (Validate_Derived_Type_Instance): Implement AI05-0218-1.

From-SVN: r177189

13 years ago[multiple changes]
Arnaud Charlet [Tue, 2 Aug 2011 15:35:25 +0000 (17:35 +0200)]
[multiple changes]

2011-08-02  Yannick Moy  <moy@adacore.com>

* sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_prag.adb, sem.ads,
sem_util.adb, sem_util.ads, sem_res.adb, sem_ch2.adb, sem_ch4.adb,
sem_ch6.adb, sem_ch11.adb: Add semantic flag In_Pre_Post_Expression to
indicate that we are in a precondition or postcondition. This is used in
Mark_Non_ALFA_Subprogram (renaming of Mark_Non_ALFA_Subprogram_Body) to
decide whether to flag the spec or body of the current subprogram as
not in ALFA.

2011-08-02  Fabien Chouteau  <chouteau@adacore.com>

* impunit.adb: Add Ada.Execution_Time.Interrupts in the Ada2012 package
list.
* a-extiin.ads: New file.

2011-08-02  Bob Duff  <duff@adacore.com>

* a-direct.adb (Rename): Implement AI05-0231-1. In particular, Rename
now raises Name_Error instead of Use_Error in certain cases. The other
parts of this AI were already implemented properly.

From-SVN: r177187

13 years ago* call.c (build_call_a): Also check at_function_scope_p.
Jason Merrill [Tue, 2 Aug 2011 15:35:09 +0000 (11:35 -0400)]
* call.c (build_call_a): Also check at_function_scope_p.

From-SVN: r177185

13 years agotrim_optimize_5.f90: Remove spurious "use foo".
Tobias Burnus [Tue, 2 Aug 2011 15:32:31 +0000 (17:32 +0200)]
trim_optimize_5.f90: Remove spurious "use foo".

2011-08-02  Tobias Burnus  <burnus@net-b.de>

        * trim_optimize_5.f90: Remove spurious "use foo".
        * actual_array_vect_1.f90: Fix or add dg-final cleanup-module
        * alloc_comp_assign_7.f90: Ditto.
        * allocatable_function_5.f90: Ditto.
        * allocate_stat.f90: Ditto.
        * array_constructor_20.f90: Ditto.
        * array_constructor_21.f90: Ditto.
        * array_constructor_22.f90: Ditto.
        * array_constructor_26.f03: Ditto.
        * array_function_4.f90: Ditto.
        * assumed_charlen_function_1.f90: Ditto.
        * assumed_size_dt_dummy.f90: Ditto.
        * bind_c_usage_15.f90: Ditto.
        * bind_c_usage_16.f03: Ditto.
        * bind_c_usage_3.f03: Ditto.
        * binding_label_tests_7.f03: Ditto.
        * class_15.f03: Ditto.
        * class_27.f03: Ditto.
        * class_33.f90: Ditto.
        * class_37.f03: Ditto.
        * class_40.f03: Ditto.
        * class_42.f03: Ditto.
        * class_defined_operator_1.f03: Ditto.
        * coarray/registering_1.f90: Ditto.
        * convert_1.f90: Ditto.
        * default_initialization_3.f90: Ditto.
        * dependency_25.f90: Ditto.
        * dependency_26.f90: Ditto.
        * dependency_36.f90: Ditto.
        * dependency_37.f90: Ditto.
        * derived_array_intrinisics_1.f90: Ditto.
        * dynamic_dispatch_10.f03: Ditto.
        * elemental_non_intrinsic_dummy_1.f90 |: Ditto.
        * elemental_pointer_1.f90: Ditto.
        * elemental_result_1.f90: Ditto.
        * empty_derived_type.f90: Ditto.
        * entry_7.f90: Ditto.
        * entry_dummy_ref_2.f90: Ditto.
        * equiv_constraint_3.f90: Ditto.
        * error_recovery_3.f90: Ditto.
        * extends_4.f03: Ditto.
        * func_assign.f90: Ditto.
        * func_assign_3.f90: Ditto.
        * generic_1.f90: Ditto.
        * generic_18.f90: Ditto.
        * generic_22.f03: Ditto.
        * generic_4.f90: Ditto.
        * generic_6.f90: Ditto.
        * generic_actual_arg.f90: Ditto.
        * graphite/id-21.f: Ditto.
        * graphite/pr45758.f90: Ditto.
        * host_assoc_call_2.f90: Ditto.
        * host_assoc_call_3.f90: Ditto.
        * host_assoc_call_4.f90: Ditto.
        * host_assoc_function_4.f90: Ditto.
        * host_used_types_1.f90: Ditto.
        * implicit_1.f90: Ditto.
        * implicit_11.f90: Ditto.
        * implicit_derived_type_1.f90: Ditto.
        * impure_actual_1.f90: Ditto.
        * impure_assignment_1.f90: Ditto.
        * impure_constructor_1.f90: Ditto.
        * initialization_10.f90: Ditto.
        * initialization_12.f90: Ditto.
        * interface_14.f90: Ditto.
        * interface_15.f90: Ditto.
        * interface_2.f90: Ditto.
        * interface_25.f90: Ditto.
        * interface_26.f90: Ditto.
        * interface_29.f90: Ditto.
        * interface_assignment_1.f90: Ditto.
        * internal_pack_6.f90: Ditto.
        * internal_pack_7.f90: Ditto.
        * internal_pack_8.f90: Ditto.
        * lto/pr45586_0.f90: Ditto.
        * lto/pr47839_0.f90: Ditto.
        * module_commons_3.f90: Ditto.
        * module_equivalence_4.f90: Ditto.
        * module_equivalence_6.f90: Ditto.
        * module_function_type_1.f90: Ditto.
        * module_naming_1.f90: Ditto.
        * namelist_4.f90: Ditto.
        * operator_c1202.f90: Ditto.
        * parens_7.f90: Ditto.
        * pr32921.f: Ditto.
        * pr33646.f90: Ditto.
        * pr41928.f90: Ditto.
        * pr42119.f90: Ditto.
        * pr43984.f90: Ditto.
        * present_1.f90: Ditto.
        * private_type_2.f90: Ditto.
        * proc_decl_2.f90: Ditto.
        * proc_ptr_10.f90: Ditto.
        * proc_ptr_22.f90: Ditto.
        * proc_ptr_8.f90: Ditto.
        * proc_ptr_comp_12.f90: Ditto.
        * proc_ptr_comp_pass_6.f90: Ditto.
        * pure_formal_proc_2.f90: Ditto.
        * realloc_on_assign_4.f03: Ditto.
        * substring_equivalence.f90: Ditto.
        * transfer_assumed_size_1.f90: Ditto.
        * transpose_optimization_1.f90: Ditto.
        * trim_optimize_6.f90: Ditto.
        * typebound_call_12.f03: Ditto.
        * typebound_operator_5.f03: Ditto.
        * typebound_operator_6.f03: Ditto.
        * typebound_proc_18.f03: Ditto.
        * unreferenced_use_assoc_1.f90: Ditto.
        * use_1.f90: Ditto.
        * use_10.f90: Ditto.
        * use_11.f90: Ditto.
        * use_14.f90: Ditto.
        * use_only_2.f90: Ditto.
        * use_rename_4.f90: Ditto.
        * use_rename_5.f90: Ditto.
        * used_dummy_types_3.f90: Ditto.
        * used_interface_ref.f90: Ditto.
        * used_types_11.f90: Ditto.
        * used_types_3.f90: Ditto.
        * used_types_4.f90: Ditto.
        * userdef_operator_2.f90: Ditto.
        * vect/fast-math-vect-8.f90: Ditto.
        * vect/pr46213.f90: Ditto.
        * whole_file_21.f90: Ditto.
        * whole_file_22.f90: Ditto.
        * coarray_lib_token_1.f90: Ditto. Add space before "}".
        * coarray_lib_token_2.f90: Ditto.

From-SVN: r177184

13 years ago[multiple changes]
Arnaud Charlet [Tue, 2 Aug 2011 15:30:55 +0000 (17:30 +0200)]
[multiple changes]

2011-08-02  Vincent Celier  <celier@adacore.com>

* link.c: Only import "auto-host.h" when building the gnattools.

2011-08-02  Yannick Moy  <moy@adacore.com>

* sem_util.adb: Inter-unit inlining does not work for a subprogram
which calls a local subprogram, so extract subprogram
from Mark_Non_ALFA_Subprogram_Body.

2011-08-02  Javier Miranda  <miranda@adacore.com>

* exp_ch9.adb
(Extract_Dispatching_Call): If the type of the dispatching object is an
access type then return an explicit dereference in the Object out-mode
parameter.

2011-08-02  Gary Dismukes  <dismukes@adacore.com>

* sem_ch3.adb (Analyze_Subtype_Declaration): Generate range
compatibility checks for all indexes of an array subtype, not just the
first. Reset Has_Dynamic_Range_Check on the subtype before each
potential check to ensure that Insert_Range_Checks will not elide any
of the dynamic checks.

2011-08-02  Yannick Moy  <moy@adacore.com>

* par-prag.ad (Process_Restrictions_Or_Restriction_Warnings): recognize
SPARK restriction at parsing time.
* scng.adb (Scan): Generate a token Tok_SPARK_Hide for a SPARK HIDE
directive only if the SPARK restriction is set for this unit.

From-SVN: r177183

13 years agosem_ch3.adb, [...]: Protect call to Current_Subprogram which might be costly when...
Yannick Moy [Tue, 2 Aug 2011 15:28:12 +0000 (15:28 +0000)]
sem_ch3.adb, [...]: Protect call to Current_Subprogram which might be costly when repeated.

2011-08-02  Yannick Moy  <moy@adacore.com>

* sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb, sem_util.ads,
sem_res.adb, sem_ch2.adb, sem_ch4.adb, sem_ch6.adb,
sem_ch11.adb: Protect call to Current_Subprogram which might be costly
when repeated. Rename Current_Subprogram_Is_Not_In_ALFA into
Mark_Non_ALFA_Subprogram_Body.
Split body of Mark_Non_ALFA_Subprogram_Body to get body small and
inlined.

From-SVN: r177182

13 years agosem_res.adb: Protect calls to Matching_Static_Array_Bounds which might be costly.
Yannick Moy [Tue, 2 Aug 2011 15:26:43 +0000 (15:26 +0000)]
sem_res.adb: Protect calls to Matching_Static_Array_Bounds which might be costly.

2011-08-02  Yannick Moy  <moy@adacore.com>

* sem_res.adb: Protect calls to Matching_Static_Array_Bounds which
might be costly.

From-SVN: r177181

13 years ago[multiple changes]
Arnaud Charlet [Tue, 2 Aug 2011 15:25:25 +0000 (17:25 +0200)]
[multiple changes]

2011-08-02  Robert Dewar  <dewar@adacore.com>

* exp_ch9.adb, exp_sel.adb, restrict.ads, exp_disp.adb, erroutc.ads,
exp_ch3.adb: Minor reformatting.

2011-08-02  Emmanuel Briot  <briot@adacore.com>

* adaint.c (__gnat_locate_exec_on_path): only returns executable
files, not any regular file.
(__gnat_locate_file_with_predicate): new subprogram.

2011-08-02  Yannick Moy  <moy@adacore.com>

* sinfo.adb, sinfo.ads: Restrict the use of flags
Has_Dynamic_Length_Check and Has_Dynamic_Range_Check to expression
nodes, plus N_Subtype_Declaration for the 2nd one.

From-SVN: r177180

13 years ago[multiple changes]
Arnaud Charlet [Tue, 2 Aug 2011 15:21:19 +0000 (17:21 +0200)]
[multiple changes]

2011-08-02  Sergey Rybin  <rybin@adacore.com>

* gnat_rm.texi: Ramification of pragma Eliminate documentation
 - fix bugs in the description of Source_Trace;
 - get rid of UNIT_NAME;

2011-08-02  Javier Miranda  <miranda@adacore.com>

* exp_ch9.adb
(Build_Dispatching_Requeue): Adding support for VM targets
since we cannot directly reference the Tag entity.
* exp_sel.adb (Build_K): Adding support for VM targets.
(Build_S_Assignment): Adding support for VM targets.
* exp_disp.adb
(Default_Prim_Op_Position): In VM targets do not restrict availability
of predefined interface primitives to compiling in Ada 2005 mode.
(Is_Predefined_Interface_Primitive): In VM targets this service is not
restricted to compiling in Ada 2005 mode.
(Make_VM_TSD): Generate code that declares and initializes the OSD
record. Needed to support dispatching calls through synchronized
interfaces.
* exp_ch3.adb
(Make_Predefined_Primitive_Specs): Enable generation of predefined
primitives associated with synchronized interfaces.
(Make_Predefined_Primitive_Bodies): Enable generation of predefined
primitives associated with synchronized interfaces.

2011-08-02  Yannick Moy  <moy@adacore.com>

* par-ch11.adb (P_Handled_Sequence_Of_Statements): mark a sequence of
statements hidden in SPARK if preceded by the HIDE directive
(Parse_Exception_Handlers): mark each exception handler in a sequence of
exception handlers as hidden in SPARK if preceded by the HIDE directive
* par-ch6.adb (P_Subprogram): mark a subprogram body hidden in SPARK
if starting with the HIDE directive
* par-ch7.adb (P_Package): mark a package body hidden in SPARK if
starting with the HIDE directive; mark the declarations in a private
part as hidden in SPARK if the private part starts with the HIDE
directive
* restrict.adb, restrict.ads
(Set_Hidden_Part_In_SPARK): record a range of slocs as hidden in SPARK
(Is_In_Hidden_Part_In_SPARK): new function which returns whether its
argument node belongs to a part which is hidden in SPARK
(Check_SPARK_Restriction): do not issue violations on nodes in hidden
parts in SPARK; protect the possibly costly call to
Is_In_Hidden_Part_In_SPARK by a check that the SPARK restriction is on
* scans.ads (Token_Type): new value Tok_SPARK_Hide in enumeration
* scng.adb (Accumulate_Token_Checksum_GNAT_6_3,
Accumulate_Token_Checksum_GNAT_5_03): add case for new token
Tok_SPARK_Hide.
(Scan): recognize special comment starting with '#' and followed by
SPARK keyword "hide" as a HIDE directive.

2011-08-02  Yannick Moy  <moy@adacore.com>

* types.ads, erroutc.ads: Minor reformatting.

2011-08-02  Vincent Celier  <celier@adacore.com>

* link.c: Add response file support for cross platforms.

From-SVN: r177179

13 years agosem_aggr.adb (Resolve_Array_Aggregate): when copying the expression in an association...
Ed Schonberg [Tue, 2 Aug 2011 15:17:00 +0000 (15:17 +0000)]
sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression in an association...

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

* sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression
in an association, set parent field of copy before partial analysis.
* sem_res.adb (Resolve_Slice): create reference to itype only when
expansion is enabled.

From-SVN: r177178

13 years agoeinfo.adb, einfo.ads (Body_Is_In_ALFA, [...]): get/set for new flag denoting which...
Yannick Moy [Tue, 2 Aug 2011 15:15:07 +0000 (15:15 +0000)]
einfo.adb, einfo.ads (Body_Is_In_ALFA, [...]): get/set for new flag denoting which subprogram bodies are in ALFA

2011-08-02  Yannick Moy  <moy@adacore.com>

* einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/set
for new flag denoting which subprogram bodies are in ALFA
* restrict.adb, sem_ch7.adb: Update comment
* sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
sem_ch9.adb, sem_res.adb: Add calls to
Current_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs.
* sem_ch6.adb (Analyze_Function_Return): add calls to
Current_Subprogram_Body_Is_Not_In_ALFA on return statement in the
middle of the body, and extended return.
(Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argument
False when missing return.
(Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFA
to True for subprograms whose spec is in ALFA. Remove later on the flag
on the entity used for a subprogram body when there exists a separate
declaration.
* sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA):
if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA to
False, otherwise do nothing.

From-SVN: r177177

13 years ago[multiple changes]
Arnaud Charlet [Tue, 2 Aug 2011 15:12:44 +0000 (17:12 +0200)]
[multiple changes]

2011-08-02  Robert Dewar  <dewar@adacore.com>

* inline.adb, stand.ads, sem_ch6.adb, sem_ch8.adb: Minor reformatting.

2011-08-02  Yannick Moy  <moy@adacore.com>

* sem_ch4.ads: minor formatting.

From-SVN: r177176

13 years agosem_aggr.adb, [...]: cleanup of SPARK mode
Yannick Moy [Tue, 2 Aug 2011 15:10:17 +0000 (15:10 +0000)]
sem_aggr.adb, [...]: cleanup of SPARK mode

2011-08-02  Yannick Moy  <moy@adacore.com>

* sem_aggr.adb, err_vars.ads, sem_ch3.adb, sem_ch5.adb, sem_ch9.adb,
debug.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnat1drv.adb,
errout.adb, errout.ads, exp_ch6.adb, sem_ch4.adb, restrict.adb,
restrict.ads, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb,
opt.ads: cleanup of SPARK mode

From-SVN: r177175

13 years agocstand.adb (Create_Standard): sets Is_In_ALFA component of standard types.
Yannick Moy [Tue, 2 Aug 2011 15:07:10 +0000 (15:07 +0000)]
cstand.adb (Create_Standard): sets Is_In_ALFA component of standard types.

2011-08-02  Yannick Moy  <moy@adacore.com>

* cstand.adb (Create_Standard): sets Is_In_ALFA component of standard
types.
* einfo.adb, einfo.ads (Is_In_ALFA): add flag for all entities
(Is_In_ALFA, Set_Is_In_ALFA): new subprograms to access flag Is_In_ALFA
* sem_ch3.adb
(Analyze_Object_Declaration): set Is_In_ALFA flag for objects
(Constrain_Enumeration): set Is_In_ALFA flag for enumeration subtypes
(Constrain_Integer): set Is_In_ALFA flag for integer subtypes
(Enumeration_Type_Declaration): set Is_In_ALFA flag for enumeration
types.
(Set_Scalar_Range_For_Subtype): unset Is_In_ALFA flag for subtypes with
non-static range.
* sem_ch6.adb (Analyze_Return_Type): unset Is_In_ALFA flag for
functions whose return type is not in ALFA.
(Analyze_Subprogram_Specification): set Is_In_ALFA flag for subprogram
specifications.
(Process_Formals): unset Is_In_ALFA flag for subprograms if a
parameter's type is not in ALFA.
* stand.ads (Standard_Type_Is_In_ALFA): array defines which standard
types are in ALFA.

From-SVN: r177174

13 years agosem_ch6 (Analyze_Expression_Function): treat the function as Inline_Always...
Ed Schonberg [Tue, 2 Aug 2011 15:04:46 +0000 (15:04 +0000)]
sem_ch6 (Analyze_Expression_Function): treat the function as Inline_Always...

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

* sem_ch6 (Analyze_Expression_Function): treat the function as
Inline_Always, and introduce a subprogram declaration for it when it is
not a completion.
* inline.adb (Add_Inlined_Body): recognize bodies that come from
expression functions, so that the back-end can determine whether they
can in fact be inlined.
* sem_util.adb (Is_Expression_Function): predicate to determine whether
a function body comes from an expression function.

From-SVN: r177173

13 years ago[multiple changes]
Arnaud Charlet [Tue, 2 Aug 2011 15:00:07 +0000 (17:00 +0200)]
[multiple changes]

2011-08-02  Gary Dismukes  <dismukes@adacore.com>

* sem_ch6.adb (Check_Conformance): Revise the check for nonconforming
null exclusions to test Can_Never_Be_Null on the anonymous access types
of the formals rather than testing the formals themselves. Exclude this
check in cases where the Old_Formal is marked as a controlling formal,
to avoid issuing spurious errors for bodies completing dispatching
operations (due to the flag not getting set on controlling access
formals in body specs).
(Find_Corresponding_Spec): When checking full and subtype conformance of
subprogram bodies in instances, pass Designated and E in that order, for
consistency with the expected order of the formals (New_Id followed by
Old_Id).

2011-08-02  Robert Dewar  <dewar@adacore.com>

* sem_ch8.adb: Minor reformatting.

From-SVN: r177172

13 years ago[multiple changes]
Arnaud Charlet [Tue, 2 Aug 2011 14:56:42 +0000 (16:56 +0200)]
[multiple changes]

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

* sem_ch8.adb (Analyze_Subprogram_Renaming): new procedure
Check_Class_Wide_Actual, to implement AI05-0071, on defaulted
primitive operations of class-wide actuals.

2011-08-02  Javier Miranda  <miranda@adacore.com>

* exp_atag.ads, exp_atag.adb
(Build_Common_Dispatching_Select_Statements): Remove argument Loc
since its value is implicitly passed in argument Typ.
* exp_disp.adb (Make_Disp_Conditional_Select_Body,
Make_Disp_Timed_Select_Body): Remove Loc in calls to routine
Build_Common_Dispatching_Select_Statements.

From-SVN: r177171

13 years agogimple.c (canonicalize_cond_expr_cond): Handle cast from boolean-type.
Kai Tietz [Tue, 2 Aug 2011 14:55:47 +0000 (16:55 +0200)]
gimple.c (canonicalize_cond_expr_cond): Handle cast from boolean-type.

* gimple.c (canonicalize_cond_expr_cond): Handle cast from
boolean-type.
(ssa_forward_propagate_and_combine): Interprete result of
forward_propagate_comparison.
* gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
boolean-typed operands for comparisons.

* gcc.dg/tree-ssa/forwprop-15.c: New testcase.

From-SVN: r177170

13 years agosem_ch3.adb, [...]: Update comments.
Robert Dewar [Tue, 2 Aug 2011 14:54:14 +0000 (14:54 +0000)]
sem_ch3.adb, [...]: Update comments.

2011-08-02  Robert Dewar  <dewar@adacore.com>

* sem_ch3.adb, exp_atag.ads, get_scos.adb, get_scos.ads,
exp_disp.adb, lib-xref.adb, lib-xref.ads: Update comments.
Minor reformatting.

From-SVN: r177169

13 years ago[multiple changes]
Arnaud Charlet [Tue, 2 Aug 2011 14:50:56 +0000 (16:50 +0200)]
[multiple changes]

2011-08-02  Robert Dewar  <dewar@adacore.com>

* sem_res.adb: Minor reformatting.
* sem_prag.adb: Minor reformatting.

2011-08-02  Javier Miranda  <miranda@adacore.com>

* exp_atag.adb, exp_atags.ads
(Build_Common_Dispatching_Select_Statement): Replace argument DT_Ptr
by the tagged type Entity. Required to use this routine in the VM
targets since we do not have available the Tag entity in the VM
platforms.
* exp_ch6.adb
(Expand_N_Subprogram_Body): Do not invoke Build_VM_TSDs if package
Ada.Tags has not been previously loaded.
* exp_ch7.adb
(Expand_N_Package_Declaration, Expand_N_Package_Body): Do not invoke
Build_VM_TSDs if package Ada.Tags has not been previously loaded.
* sem_aux.adb
(Enclosing_Dynamic_Scope): Add missing support to handle the full
view of enclosing scopes. Required to handle enclosing scopes that
are synchronized types whose full view is a task type.
* exp_disp.adb
(Build_VM_TSDs): Minor code improvement to avoid generating and
analyzing lists with empty nodes.
(Make_Disp_Asynchronous_Select_Body): Add support for VM targets.
(Make_Disp_Conditional_Select_Body): Add support for VM targets.
(Make_Disp_Get_Prim_Op_Kind): Add support for VM targets.
(Make_Disp_Timed_Select_Body): Add support for VM targets.
(Make_Select_Specific_Data_Table): Add support for VM targets.
(Make_VM_TSD): Generate code to initialize the SSD structure of
the TSD.

2011-08-02  Yannick Moy  <moy@adacore.com>

* lib-writ.adb (Write_ALI): when ALFA mode is set, write local
cross-references section in ALI.
* lib-xref.adb, lib-xref.ads (Xref_Entry): add components Sub
(enclosing subprogram), Slc (location of Sub) and Sun (unit number of
Sub).
(Enclosing_Subprogram_Or_Package): new function to return the enclosing
subprogram or package entity of a node
(Is_Local_Reference_Type): new function returns True for references
selected in local cross-references.
(Lt): function extracted from Lt in Output_References
(Write_Entity_Name): function extracted from Output_References
(Generate_Definition): generate reference with type 'D' for definition
of objects (object declaration and parameter specification), with
appropriate locations and units, for use in local cross-references.
(Generate_Reference): update fields Sub, Slc and Sun. Keep newly created
references of type 'I' for initialization in object definition.
(Output_References): move part of function Lt and procedure
Write_Entity_Name outside of the body. Ignore references of types 'D'
and 'I' introduced for local cross-references.
(Output_Local_References): new procedure to output the local
cross-references sections.
(Lref_Entity_Status): new array defining whether an entity is a local
* sem_ch3.adb (Analyze_Object_Declaration): call Generate_Reference
with 'I' type when initialization expression is present.
* get_scos.adb, get_scos.ads: Correct comments and typos

From-SVN: r177168

13 years ago[multiple changes]
Arnaud Charlet [Tue, 2 Aug 2011 14:46:28 +0000 (16:46 +0200)]
[multiple changes]

2011-08-02  Javier Miranda  <miranda@adacore.com>

* exp_ch6.adb (Expand_N_Subprogram_Body): Enable generation of TSDs in
the JVM target.
* exp_ch7.adb (Expand_N_Package_Body): Enable generation of TSDs in
the JVM target.
* exp_disp.adb (Build_VM_TSDs): No action needed if the runtime has no
TSD support.

2011-08-02  Vincent Celier  <celier@adacore.com>

* prj-nmsc.adb (File_Found): New components Excl_File and Excl_Line
(No_Space_Img): New function
(Find_Excluded_Sources): When reading from a file, record the file name
and the line number for each excluded source.
(Mark_Excluded_Sources): When reporting an error, if the excluded
sources were read from a file, include file name and line number in
the error message.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

* sem_res.adb (Resolve_Call): implement rule in RM 12.5.1 (23.3/2).

From-SVN: r177167

13 years agoCheck __x86_64__ instead of __LP64__ for x86 futex.
H.J. Lu [Tue, 2 Aug 2011 14:44:06 +0000 (14:44 +0000)]
Check __x86_64__ instead of __LP64__ for x86 futex.

2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>

* config/linux/x86/futex.h: Check __x86_64__ instead of
__LP64__.

From-SVN: r177166

13 years agoexp_ch7.adb [...]: Minor reformatting
Robert Dewar [Tue, 2 Aug 2011 14:43:43 +0000 (14:43 +0000)]
exp_ch7.adb [...]: Minor reformatting

2011-08-02  Robert Dewar  <dewar@adacore.com>

* exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting

From-SVN: r177165

13 years agoexp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the generation of TSDs...
Javier Miranda [Tue, 2 Aug 2011 14:42:28 +0000 (14:42 +0000)]
exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the generation of TSDs to the DOTNET compiler.

2011-08-02  Javier Miranda  <miranda@adacore.com>

* exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the
generation of TSDs to the DOTNET compiler.
* exp_ch7.adb (Expand_N_Package_Body): Temporarily restrict the
generation of TSDs to the DOTNET compiler.

From-SVN: r177164

13 years agoexp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data record of all...
Javier Miranda [Tue, 2 Aug 2011 14:41:13 +0000 (14:41 +0000)]
exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data record of all the tagged types declared...

2011-08-02  Javier Miranda  <miranda@adacore.com>

* exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data
record of all the tagged types declared inside library level package
declarations, library level package bodies or library level subprograms.
* exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSD
associated with a given tagged type.
(Build_VM_TSDs): New subprogram.
* exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of main
compilation units that are subprograms.
* exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of main
compilation units that are package bodies.
(Expand_N_Package_Declaration): Generate TSDs of the main compilation
units that are a package declaration or a package instantiation.
* exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor code
reorganization to improve the error generated by the frontend when the
function Ada.Tags.Secondary_Tag is not available.
* rtsfind.ads (RE_Register_TSD): New runtime entity.
* exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup.

From-SVN: r177163

13 years ago[multiple changes]
Arnaud Charlet [Tue, 2 Aug 2011 14:39:06 +0000 (16:39 +0200)]
[multiple changes]

2011-08-02  Javier Miranda  <miranda@adacore.com>

* exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode.

2011-08-02  Robert Dewar  <dewar@adacore.com>

* s-imenne.ads: Minor reformatting.

2011-08-02  Robert Dewar  <dewar@adacore.com>

* a-stunau.ads: Add pragma Suppress_Initialization for Big_String
* freeze.adb (Warn_Overlay): Don't warn if initialization suppressed
* s-stalib.ads: Add pragma Suppress_Initialization for Big_String

2011-08-02  Robert Dewar  <dewar@adacore.com>

* einfo.ads (Materialize_Entity): Document this is only for renamings
* exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generate
required debug information in the case where we transform the object
declaration into a renaming declaration.
* exp_ch4.adb (Expand_Concatenate): Generate debug info for result
object
* exp_dbug.ads (Debug_Renaming_Declaration): Document setting of
Materialize_Entity.

From-SVN: r177162

13 years agoeinfo.ads, einfo.adb (Suppress_Initialization): Replaces Suppress_Init_Procs.
Robert Dewar [Tue, 2 Aug 2011 14:35:51 +0000 (14:35 +0000)]
einfo.ads, einfo.adb (Suppress_Initialization): Replaces Suppress_Init_Procs.

2011-08-02  Robert Dewar  <dewar@adacore.com>

* einfo.ads, einfo.adb (Suppress_Initialization): Replaces
Suppress_Init_Procs.
* exp_ch3.adb, exp_disp.adb, freeze.adb: Use
Suppress_Initialization/Initialization_Suppressed.
* gnat_rm.texi: New documentation for pragma Suppress_Initialization
* sem_aux.ads, sem_aux.adb (Initialization_Suppressed): New function
* sem_dist.adb: Use Suppress_Initialization/Initialization_Suppressed
* sem_prag.adb: New processing for pragma Suppress_Initialization.

From-SVN: r177161

13 years agognat_rm.texi, [...]: Minor reformatting.
Robert Dewar [Tue, 2 Aug 2011 14:30:35 +0000 (14:30 +0000)]
gnat_rm.texi, [...]: Minor reformatting.

2011-08-02  Robert Dewar  <dewar@adacore.com>

* gnat_rm.texi, a-tags.ads, sem_prag.adb, sem_ch12.adb, exp_disp.adb:
Minor reformatting.

From-SVN: r177160

13 years ago[multiple changes]
Arnaud Charlet [Tue, 2 Aug 2011 14:28:32 +0000 (16:28 +0200)]
[multiple changes]

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

* sem_prag.adb (Chain_PPC): Implement AI04-0230: null procedures can
only have inheritable classwide pre/postconditions.

2011-08-02  Javier Miranda  <miranda@adacore.com>

* a-tags.ads, a-tags.adb (Check_TSD): New subprogram.
* rtsfind.ads (RE_Check_TSD): New runtime entity.
* exp_disp.adb (Make_DT): Generate call to the new runtime routine that
checks if the external tag of a type is the same as the external tag
of some other declaration.

From-SVN: r177159

13 years ago[multiple changes]
Arnaud Charlet [Tue, 2 Aug 2011 14:02:45 +0000 (16:02 +0200)]
[multiple changes]

2011-08-02  Thomas Quinot  <quinot@adacore.com>

* s-taskin.ads: Minor reformatting.

2011-08-02  Emmanuel Briot  <briot@adacore.com>

* g-comlin.adb (Display_Help): swap the order in which it prints the
short help and the general usage.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

* sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): copy properly
the aspect declarations and attach them to the generic copy for
subsequent analysis.
(Analyze_Subprogram_Instantiation): copy explicitly the aspect
declarations of the generic tree to the new subprogram declarations.
* sem_attr.adb (Check_Precondition_Postcondition): recognize
conditions that apply to a subprogram instance.

2011-08-02  Robert Dewar  <dewar@adacore.com>

* gnat_rm.texi: Clarify doc on pragma Source_File_Name[_Project].

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

* sem_ch3.adb (Derived_Type_Declaration): When checking that a untagged
private type with a tagged full view is not derived in the immediate
scope of the partial view, (RM 7.3 (7)) use the scope of the base type.

From-SVN: r177157

13 years ago[multiple changes]
Arnaud Charlet [Tue, 2 Aug 2011 13:51:43 +0000 (15:51 +0200)]
[multiple changes]

2011-08-02  Robert Dewar  <dewar@adacore.com>

* exp_ch4.adb: Minor reformatting.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

* sem_ch5.adb (Analyze_Loop_Statement):  If the iteration scheme is an
Ada2012 iterator, the loop will be rewritten during expansion into a
while loop with a cursor and an element declaration. Do not analyze the
body in this case, because if the container is for indefinite types the
actual subtype of the elements will only be determined when the cursor
declaration is analyzed.

2011-08-02  Arnaud Charlet  <charlet@adacore.com>

* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore
size/alignment related attributes in CodePeer_Mode.

2011-08-02  Gary Dismukes  <dismukes@adacore.com>

* sem_ch3.adb (Check_Ops_From_Incomplete_Type): Remove call to
Prepend_Element, since this can result in the operation getting the
wrong slot in the full type's dispatch table if the full type has
inherited operations. The incomplete type's operation will get added
to the proper position in the full type's primitives
list later in Sem_Disp.Check_Operation_From_Incomplete_Type.
(Process_Incomplete_Dependents): Add Is_Primitive test when checking for
dispatching operations, since there are cases where nonprimitive
subprograms can get added to the list of incomplete dependents (such
as subprograms in nested packages).
* sem_ch6.adb (Process_Formals): First, remove test for being in a
private part when determining whether to add a primitive with a
parameter of a tagged incomplete type to the Private_Dependents list.
Such primitives can also occur in the visible part, and should not have
been excluded from being private dependents.
* sem_ch7.adb (Uninstall_Declarations): When checking the rule of
RM05-3.10.1(9.3/2), test that a subprogram in the Private_Dependents
list of a Taft-amendment incomplete type is a primitive before issuing
an error that the full type must appear in the same unit. There are
cases where nonprimitives can be in the list (such as subprograms in
nested packages).
* sem_disp.adb (Derives_From): Use correct condition for checking that
a formal's type is derived from the type of the corresponding formal in
the parent subprogram (the condition was completely wrong). Add
checking that was missing for controlling result types being derived
from the result type of the parent operation.

From-SVN: r177156