1. 29 Aug, 2011 29 commits
    • sem_res.adb (Resolve_Actuals): Use base type to determine whether an access… · 97216ca8
      sem_res.adb (Resolve_Actuals): Use base type to determine whether an access subtype is access_to_subprogram...
      
      2011-08-29  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_res.adb (Resolve_Actuals): Use base type to determine whether an
      	access subtype is access_to_subprogram, when applying checks for
      	RM 3.10.2 (27).
      
      From-SVN: r178185
      Ed Schonberg committed
    • [multiple changes] · d3cb4cc0
      2011-08-29  Matthew Heaney  <heaney@adacore.com>
      
      	* a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Splice_Subtree): Only check
      	for sibling when common parent.
      
      2011-08-29  Thomas Quinot  <quinot@adacore.com>
      
      	* get_scos.adb: Literals of Pragma_Id are pragma names prefixed with
      	"pragma_".
      
      2011-08-29  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Enable freeze actions
      	for the return type when in ASIS mode.
      
      2011-08-29  Vincent Celier  <celier@adacore.com>
      
      	* make.adb (Gnatmake): Get the default search dirs, then the target
      	parameters after getting the Builder switches, as the Builder switches
      	may include --RTS= and that could change the default search dirs.
      
      2011-08-29  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch7.adb (Make_Adjust_Call): Rewrite to mimic the structure of
      	Make_Final_Call. Move the processing for class-wide types before the
      	processing for derivations from [Limited_]Controlled.
      	(Make_Final_Call): Move the processing for class-wide types before the
      	processing for derivations from [Limited_]Controlled.
      	* s-stposu.adb (Allocate_Any_Controlled): Correct the membership check.
      	Add code to account for alignments larger than the list header. Add a
      	comment illustrating the structure of the allocated object + padding +
      	header.
      	(Deallocate_Any_Controlled): Add code to account for alignments larger
      	than the list header.
      
      2011-08-29  Ed Schonberg  <schonberg@adacore.com>
      
      	* sinfo.ads, sinfo.adb: New node kind
      	N_Formal_Incomplete_Type_Definition, related flags.
      	par-ch12.adb (P_Formal_Type_Declaration, G_Formal_Type_Definition):
      	Parse formal incomplete types.
      	* sem.adb (Analyze): Formal_Incomplete_Type_Definitions are handled in
      	sem_ch12.
      	* sem_ch7.adb (Analyze_Package_Specification, Unit_Requires_Body):
      	Formal incomplete types do not need completion.
      	* sem_ch12.adb (Analyze_Formal_Incomplete_Type,
      	Validate_Incomplete_Type_Instance): New procedures to handle formal
      	incomplete types.
      	* freeze.adb (Freeze_Entity): Do not freeze the subtype of an actual
      	that corresponds to a formal incomplete type.
      	* sprint.adb: Handle formal incomplete type declarations.
      	* exp_util.adb (Insert_Actions): An incomplete_type_definition is not
      	an insertion point.
      
      From-SVN: r178184
      Arnaud Charlet committed
    • [multiple changes] · d3f70b35
      2011-08-29  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* a-fihema.ads, a-fihema.adb: Unit removed.
      	* a-undesu.ads, a-undesu.adb: New unit implementing
      	Ada.Unchecked_Deallocate_Subpool.
      	* einfo.adb: Remove Associated_Collection from the node usage.
      	Add Finalization_Master to the node usage.
      	(Associated_Collection): Removed.
      	(Finalization_Master): New routine.
      	(Set_Associated_Collection): Removed.
      	(Set_Finalization_Master): New routine.
      	(Write_Field23_Name): Remove Associated_Collection from the output. Add
      	Finalization_Master to the output.
      	* einfo.ads: Remove attribute Associated_Collection and its uses in
      	entities.
      	Add new attribute Finalization_Master along with its uses in entitites.
      	(Associated_Collection): Removed along with its pragma import.
      	(Finalization_Master): New routine along with a pragma import.
      	(Set_Associated_Collection): Removed along with its pragma import.
      	(Set_Finalization_Master): New routine along with a pragma import.
      	* exp_ch3.adb (Expand_Freeze_Array_Type): Replace call to
      	Build_Finalization_Collection with Build_Finalization_Master.
      	(Expand_Freeze_Record_Type): Move the generation of Finalize_Address
      	before the bodies of the predefined routines. Add comment explaining
      	this. Replace call to Build_Finalization_Collection with
      	Build_Finalization_Master.
      	(Freeze_Type): Replace call to Build_Finalization_Collection with
      	Build_Finalization_Master.
      	(Make_Finalize_Address_Body): Comment reformatting.
      	(Make_Predefined_Primitive_Specs): Code reformatting.
      	(Stream_Operation_OK): Update comment mentioning finalization
      	collections. Replace RE_Finalization_Collection with
      	RE_Finalization_Master.
      	* exp_ch4.adb (Complete_Controlled_Allocation): Replace call to
      	Associated_Collection with Finalization_Master. Replace call to
      	Build_Finalization_Collection with Build_Finalization_Master.
      	(Expand_Allocator_Expression): Replace call to Associated_Collection
      	with Finalization_Master. Replace call to Set_Associated_Collection with
      	Set_Finalization_Master. Remove the generation of
      	Set_Finalize_Address_Ptr.
      	(Expand_N_Allocator): Replace call to Associated_Collection with
      	Finalization_Master. Remove the generation of Set_Finalize_Address_Ptr.
      	* exp_ch6.adb (Add_Collection_Actual_To_Build_In_Place_Call): Renamed to
      	Add_Finalization_Master_Actual_To_Build_In_Place_Call. Update the
      	comment on usage. Replace call to Needs_BIP_Collection with
      	Needs_BIP_Finalization_Master Remplace BIP_Collection with
      	BIP_Finalization_Master. Update all comments which mention finalization
      	collections. Replace Associated_Collection with
      	Finalization_Master. Replace Build_Finalization_Collection with
      	Build_Finalization_Master.
      	(BIP_Formal_Suffix): Update BIP_Collection's case.
      	(Build_Heap_Allocator): Update the related comment. Rename local
      	variable Collect to Fin_Mas_Id and update its occurrences. Update
      	comments which mention finalization collections. Replace
      	Set_Associated_Collection with Set_Finalization_Master.
      	(Expand_Call): Update the code which detects a special piece of library
      	code for .NET/JVM.
      	(Make_Build_In_Place_Call_In_Allocator): Replace the call to
      	Add_Collection_Actual_To_Build_In_Place_Call with
      	Add_Finalization_Master_Actual_To_Build_In_Place_Call. Remove the code
      	which generates a call to Make_Set_Finalize_Address_Ptr_Call.
      	(Make_Build_In_Place_Call_In_Anonymous_Context): Replace call to
      	Add_Collection_Actual_To_Build_In_Place_Call with
      	Add_Finalization_Master_Actual_To_Build_In_Place_Call.
      	(Make_Build_In_Place_Call_In_Assignment): Replace call to
      	Add_Collection_Actual_To_Build_In_Place_Call with
      	Add_Finalization_Master_Actual_To_Build_In_Place_Call.
      	(Needs_BIP_Collection): Renamed to Needs_BIP_Finalization_Master.
      	* exp_ch6.ads: Rename BIP_Collection to BIP_Finalization_Master.
      	(Needs_BIP_Collection): Renamed to Needs_BIP_Finalization_Master.
      	* exp_ch7.adb (Build_BIP_Cleanup_Stmts): Update comment on usage.
      	Rename local variable Collect to Fin_Mas_Id and update its occurrences.
      	Replace call to Set_Associated_Collection with Set_Finalization_Master.
      	(Build_Finalization_Collection): Renamed to Build_Finalization_Master.
      	Replace the call to Associated_Collection with Finalization_Master.
      	Rename local variable Coll_Id to Fin_Mas_Id and update its occurrences.
      	Update the way finalization master names are generated. Update the
      	retrieval of the correct access type which will carry the pool and
      	master attributes.
      	(Make_Final_Call): Reimplement the way [Deep_]Finalize is retrieved.
      	(Make_Finalize_Address_Body): Abstract types do not need
      	Finalize_Address. Code reformatting.
      	(Make_Finalize_Address_Stmts): Update comment on usage.
      	(Make_Set_Finalize_Address_Ptr_Call): Removed.
      	(Process_Declarations): Update comments.
      	* exp_ch7.ads (Build_Finalization_Collection): Renamed to
      	Build_Finalization_Master. Update associated comment.
      	(Make_Set_Finalize_Address_Ptr_Call): Removed.
      	* exp_ch13.adb: Update comments which mention finalization collections.
      	(Expand_N_Free_Statement): Replace the call to Associated_Collection
      	with Finalization_Master.
      	* exp_util.adb (Build_Allocate_Deallocate_Proc): Reimplemented to
      	create calls to routines Allocate_Any_Controlled and
      	Deallocate_Any_Controlled.
      	(Find_Finalize_Address): New routine.
      	(Is_Allocate_Deallocate_Proc): Update the RTE entities used in the
      	comparison.
      	(Requires_Cleanup_Actions): Update the comment on freeze node
      	inspection.
      	* exp_util.ads: Remove comment on generated code for
      	Build_Allocate_Deallocate_Proc. The code is now quite complex and it
      	is better to simply look in the body.
      	* freeze.adb (Freeze_All): Update the comment of finalization
      	collections. Replace the call to Associated_Collection with
      	Finalization_Master. Replace the call to Build_Finalization_Collection
      	with Build_Finalization_Master.
      	* impunit.adb: Add a-undesu and s-stposu to the list of units.
      	* Makefile.rtl: Add files a-undesu, s-finmas and s-stposu. Remove file
      	a-fihema.
      	* rtsfind.adb (Get_Unit_Name): Remove the processing for children of
      	Ada.Finalization. Add processing for children of System.Storage_Pools.
      	* rtsfind.ads: Remove the naming of second level children of
      	Ada.Finalization.
      	Remove Ada_Finalization_Heap_Management from the list of units.
      	Remove subtype Ada_Finalization_Child.
      	Remove the following subprogram entities:
      	
      	   RE_Allocate
      	   RE_Deallocate
      	   RE_Finalization_Collection
      	   RE_Finalization_Collection_Ptr
      	   RE_Set_Finalize_Address_Ptr
      	
      	Add the naming of second level children of System.Storage_Pools.
      	Add System_Finalization_Masters and System_Storage_Pools_Subpools to
      	the list of units.
      	Add subtype System_Storage_Pools_Child.
      	Add the following subprogram entities to System.Finalization_Masters:
      	
      	   RE_Finalization_Master
      	   RE_Finalization_Master_Ptr
      	
      	Add the following subprogram entities to System.Storage_Pools.Subpools:
      	
      	   RE_Allocate_Any_Controlled
      	   RE_Deallocate_Any_Controlled
      	   RE_Root_Storage_Pool_With_Subpools
      	   RE_Root_Subpool
      	   RE_Subpool_Handle
      	
      	Move the following subprogram entities from
      	Ada.Finalization.Heap_Management to System.Finalization_Masters:
      	
      	   RE_Add_Offset_To_Address
      	   RE_Attach
      	   RE_Base_Pool
      	   RE_Detach
      	
      	* sem_ch3.adb (Access_Type_Declaration): Replace the call to
      	Set_Associated_Collection with Set_Finalization_Master.
      	* sem_ch6.adb (Create_Extra_Formals): Update the way extra formal
      	BIP_Finalization_Master is created.
      	* s-finmas.adb: New unit System.Finalization_Masters.
      	* s-finmas.ads: New unit System.Finalization_Masters.
      	* s-stopoo.ads, s-stopoo.adb: Minor code reformatting.
      	* s-stposu.ads, s-stposu.adb: New unit implementing
      	System.Storage_Pools.Subpools.
      
      2011-08-29  Bob Duff  <duff@adacore.com>
      
      	* tbuild.adb: Add assertion.
      
      From-SVN: r178183
      Arnaud Charlet committed
    • [multiple changes] · 8c889ae4
      2011-08-29  Thomas Quinot  <quinot@adacore.com>
      
      	* s-pooglo.adb: Minor reformatting.
      
      2011-08-29  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch5.adb (Expand_N_Assignment_Statement): if the left-hand side is
      	an indexed component of a packed array whose element type is a record
      	with a representation clause different from that of the right-hand
      	side, generate a temporary to minimuze the number of bit-field
      	operations generated.
      
      2011-08-29  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_util.adb (Insert_Actions): Use clauses can be part of lists of
      	declarations, and thus are likely insertion points for actions.
      
      2011-08-29  Bob Duff  <duff@adacore.com>
      
      	* einfo.ads: Minor comment fix.
      
      From-SVN: r178182
      Arnaud Charlet committed
    • [multiple changes] · 1a07a71a
      2011-08-29  Robert Dewar  <dewar@adacore.com>
      
      	* frontend.adb, gnat1drv.adb: Minor reformatting.
      
      2011-08-29  Tristan Gingold  <gingold@adacore.com>
      
      	* s-pooglo.adb (Allocate, Deallocate): Take into account the alignment.
      	* a-fihema.adb (Allocate, Deallocate): Ditto.  Possibly add padding
      	space in front of the header.
      
      From-SVN: r178181
      Arnaud Charlet committed
    • frontend.adb (Frontend): Exit after creating Standard package when -gnatd.H is present. · 4bcd6411
      2011-08-29  Johannes Kanig  <kanig@adacore.com>
      
      	* frontend.adb (Frontend): Exit after creating Standard package when
      	-gnatd.H is present.
      	* gnat1drv.adb (Gnat1drv): Call Backend right away when -gnatd.H is
      	present.
      
      From-SVN: r178180
      Johannes Kanig committed
    • exp_ch9.adb, [...]: Minor reformatting. · f0f88eb6
      2011-08-29  Robert Dewar  <dewar@adacore.com>
      
      	* exp_ch9.adb, mlib-prj.adb, prj.adb, prj.ads, ttypes.ads, sem_ch4.adb,
      	makeutl.adb, makeutl.ads, atree.ads, snames.adb-tmpl,
      	snames.ads-tmpl: Minor reformatting.
      
      From-SVN: r178179
      Robert Dewar committed
    • prj.adb (Reset_Units_In_Table): New procedure. · 3e37be71
      2011-08-29  Philippe Gil  <gil@adacore.com>
      
      	* prj.adb (Reset_Units_In_Table): New procedure.
      	Reset units to avoid access to freed memory.
      
      From-SVN: r178178
      Philippe Gil committed
    • [multiple changes] · 94fb7608
      2011-08-29  Thomas Quinot  <quinot@adacore.com>
      
      	* get_scos.adb: When reading a P statement SCO without a pragma name
      	(from an older ALI file), ensure that the Pragma_Name component is set
      	to Unknown_Pragma (not left uninitialized).
      
      2011-08-29  Vincent Celier  <celier@adacore.com>
      
      	* makeutl.adb (Get_Directories): New procedure moved from Buildgpr and
      	modified to compute correctly the object path of a SAL project that is
      	extending another library project.
      	(Write_Path_File): New procedure.
      	* makeutl.ads (Directories): New table moved from Buildgpr
      	(Get_Directories): New procedure moved from Buildgpr
      	(Write_Path_File): New procedure
      	* mlib-prj.adb (Build_Library): Use Makeutl.Get_Directories to set the
      	paths before binding SALs, instead of Set_Ada_Paths.
      	* prj-env.adb (Set_Path_File_Var): Procedure has been moved to package
      	Prj.
      	* prj.adb (Set_Path_File_Var): New procedure moved from Prj.Env
      	(Current_Source_Path_File_Of): New function
      	(Set_Current_Object_Path_File_Of): New procedure
      	(Current_Source_Object_File_Of): New function
      	(Set_Current_Object_Path_File_Of): New procedure
      	* prj.ads (Set_Path_File_Var): New procedure moved from Prj.Env
      	(Current_Source_Path_File_Of): New function
      	(Set_Current_Object_Path_File_Of): New procedure
      	(Current_Source_Object_File_Of): New function
      	(Set_Current_Object_Path_File_Of): New procedure
      
      2011-08-29  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch5.adb (Expand_N_Assignment_Statement): For an assignment to a
      	packed entity, use a bit-field assignment only if there is no change of
      	representation.
      
      From-SVN: r178177
      Arnaud Charlet committed
    • [multiple changes] · c5ecd6b7
      2011-08-29  Thomas Quinot  <quinot@adacore.com>
      
      	* rtsfind.ads, exp_ch3.adb (In_Runtime): Minor code improvement, use
      	Is_RTU instead of using Chars comparisons.
      
      2011-08-29  Thomas Quinot  <quinot@adacore.com>
      
      	* exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do not create a
      	temporary object if the actual is constrained, and the discriminants
      	read from the stream don't match.
      
      2011-08-29  Tristan Gingold  <gingold@adacore.com>
      
      	* sem_attr.adb, exp_attr.adb: Add handling of
      	Attribute_System_Allocator_Alignment
      	* snames.ads-tmpl: Add Name_System_Allocator_Alignment and
      	Attribute_System_Allocator_Alignment.
      	* ttypes.ads, get_targ.ads: Add Get_System_Allocator_Alignment.
      	* gcc-interface/targtyps.c, gcc-interface/utils2.c,
      	gcc-interface/gigi.h: Renames get_target_default_allocator_alignment to
      	get_target_system_allocator_alignment.
      
      2011-08-29  Arnaud Charlet  <charlet@adacore.com>
      
      	* gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Update
      	dependencies.
      
      From-SVN: r178176
      Arnaud Charlet committed
    • re PR libfortran/50192 (Wrong character comparision with wide strings) · e7898e54
      2011-08-29  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR libfortran/50192
      	* intrinsics/string_intrinsics.c (memcmp_char4):  New function.
      	* intrinsics/string_intrinsics_inc.c:  New macro MEMCMP, either
      	set to memcmp or memcmp_char4.
      	(compare_string):  Use MEMCMP, with correct size for it.
      	* libgfortran.h:  Add prototype for memcmp_char4.
      
      2011-08-29  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR libfortran/50192
      	* gfortran.dg/widechar_compare_1.f90:  New test.
      
      From-SVN: r178173
      Thomas Koenig committed
    • gimple-fold.c (gimple_fold_stmt_to_constant_1): Set a location on the built ADDR_EXPR. · 4d59a001
      2011-08-29  Richard Guenther  <rguenther@suse.de>
      
      	* gimple-fold.c (gimple_fold_stmt_to_constant_1): Set a location
      	on the built ADDR_EXPR.
      
      From-SVN: r178172
      Richard Guenther committed
    • exp_ch3.adb (In_Runtime): Fix typo. · 8abdac29
      2011-08-29  Arnaud Charlet  <charlet@adacore.com>
      
      	* exp_ch3.adb (In_Runtime): Fix typo.
      
      From-SVN: r178171
      Arnaud Charlet committed
    • [multiple changes] · df170605
      2011-08-29  Bob Duff  <duff@adacore.com>
      
      	* sem_ch4.adb (Analyze_Allocator): Analyze the subpool specification.
      
      2011-08-29  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch3.adb (Expand_N_Object_Declaration): If the entity is tagged
      	and a separate tag assignment is generated, ensure that the tag
      	assignment is analyzed.
      
      From-SVN: r178170
      Arnaud Charlet committed
    • atree.ads, atree.adb (Copy_Separate_List): New function that applies… · 864a4236
      atree.ads, atree.adb (Copy_Separate_List): New function that applies Copy_Separate_Tree to a list of nodes.
      
      2011-08-29  Ed Schonberg  <schonberg@adacore.com>
      
      	* atree.ads, atree.adb (Copy_Separate_List): New function that applies
      	Copy_Separate_Tree to a list of nodes. Used to create disjoint copies
      	of statement lists that may contain local declarations.
      	(Expand_N_Timed_Entry_Call): Use Copy_Separate_List to duplicate the
      	triggering statements needed for the expansion of this construct, when
      	the trigger is a dispatching call to a synchronized primitive.
      
      From-SVN: r178169
      Ed Schonberg committed
    • gnat_rm.texi: Add doc for 'Elab_Subp_Body. · 7f394c1d
      2011-08-29  Arnaud Charlet  <charlet@adacore.com>
      
      	* gnat_rm.texi: Add doc for 'Elab_Subp_Body.
      	* bindgen.adb: Add comments.
      	* snames.adb-tmpl (Is_Attribute_Name): Only recognize 'Elab_Subp_Body
      	in CodePeer mode.
      
      From-SVN: r178168
      Arnaud Charlet committed
    • re PR debug/50215 (FAIL: gcc.dg/guality/pr45882.c) · 304fe432
      	PR debug/50215
      	* var-tracking.c (create_entry_value): Call cselib_lookup_from_insn
      	before adding ENTRY_VALUE to val->locs.
      
      From-SVN: r178167
      Jakub Jelinek committed
    • exp_attr.adb: Minor reformatting. · 2c1a2cf3
      2011-08-29  Robert Dewar  <dewar@adacore.com>
      
      	* exp_attr.adb: Minor reformatting.
      	Minor code reorganization and commenting.
      	* par_sco.adb, checks.adb, sem_attr.adb, get_scos.adb: Minor
      	reformatting.
      
      From-SVN: r178166
      Robert Dewar committed
    • [multiple changes] · 0bfc9a64
      2011-08-29  Thomas Quinot  <quinot@adacore.com>
      
      	* get_scos.adb: Ignore chaining indicators not currently supported
      	by Ada.
      
      2011-08-29  Arnaud Charlet  <charlet@adacore.com>
      
      	* system.ads: Minor editing.
      
      2011-08-29  Arnaud Charlet  <charlet@adacore.com>
      
      	* bindgen.adb (Gen_Elab_Calls): Generate calls to subp'Elab_Subp_Body in
      	CodePeer mode.
      	* sem_attr.ads, sem_attr.adb, exp_Attr.adb, sem_ch6.adb: Add handling of
      	Attribute_Elab_Subp_Body.
      	* snames.ads-tmpl (Attribute_Elab_Subp_Body, Name_Elab_Subp_Body): New.
      	* sem_util.adb: Update comments.
      
      From-SVN: r178165
      Arnaud Charlet committed
    • par_sco.adb, [...]: Record pragma name for each SCO statement corresponding to a pragma. · 828d4cf0
      2011-08-29  Thomas Quinot  <quinot@adacore.com>
      
      	* par_sco.adb, scos.adb, scos.ads, put_scos.adb, get_scos.adb: Record
      	pragma name for each SCO statement corresponding to a pragma.
      
      From-SVN: r178164
      Thomas Quinot committed
    • [multiple changes] · 5cd7bb15
      2011-08-29  Arnaud Charlet  <charlet@adacore.com>
      
      	* opt.ads: Minor editing.
      
      2011-08-29  Yannick Moy  <moy@adacore.com>
      
      	* gnat1drv.adb (Adjust_Global_Switches): Remove options for ALFA mode
      	that only made sense for CodePeer mode.
      
      2011-08-29  Jose Ruiz  <ruiz@adacore.com>
      
      	* targparm.ads (Support_64_Bit_Divides_On_Target): Remove this flag
      	which is no longer used.
      	* targparm.adb (S64, S64_Str, Get_Target_Parameters): Remove the
      	handling of the 64-bit division check.
      	* exp_ch4.adb (Expand_N_Op_Divide): Remove the check for 64-bit
      	division available.
      	* system*.ads (Support_64_Bit_Divides): Remove this flag which is no
      	longer used.
      
      2011-08-29  Thomas Quinot  <quinot@adacore.com>
      
      	* get_scos.adb: Minor reformatting.
      
      From-SVN: r178163
      Arnaud Charlet committed
    • [multiple changes] · 25b589cb
      2011-08-29  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_util.adb (Process_Statements_For_Controlled_Objects): Whenever a
      	statement list is wrapped in a block, the block is explicitly analyzed
      	in order to properly redecorate the entities and create a servicing
      	finalizer.
      
      2011-08-29  Tristan Gingold  <gingold@adacore.com>
      
      	* sinfo.ads, sinfo.adb (Zero_Cost_Handling): Remove.
      	(Set_Zero_Cost_Handling): Remove.
      
      2011-08-29  Thomas Quinot  <quinot@adacore.com>
      
      	* par_sco.adb, scos.ads, put_scos.adb, get_scos.adb: Minor reformatting
      
      From-SVN: r178162
      Arnaud Charlet committed
    • [multiple changes] · 1197ddb1
      2011-08-29  Geert Bosch  <bosch@adacore.com>
      
      	* s-vaflop-vms-alpha.adb (Neg_F): Use subtraction instead of negation
      	instruction, as the latter may produce -0.0, which is not a valid VAX
      	F float number.
      	(Neg_G): Likewise for VAX F float.
      
      2011-08-29  Robert Dewar  <dewar@adacore.com>
      
      	* exp_util.adb: Minor reformatting.
      
      2011-08-29  Yannick Moy  <moy@adacore.com>
      
      	* sem_ch3.adb: Minor comment update.
      
      2011-08-29  Thomas Quinot  <quinot@adacore.com>
      
      	* checks.adb (Apply_Type_Conversion_Checks): Use the Underlying_Type of
      	the operand type.
      
      2011-08-29  Thomas Quinot  <quinot@adacore.com>
      
      	* par_sco.adb (Traverse_Declarations_Or_Statements): Do not flush
      	current statement sequence on a generic instantiation or a subprogram
      	declaration.
      
      From-SVN: r178161
      Arnaud Charlet committed
    • [multiple changes] · 8f66cda7
      2011-08-29  Robert Dewar  <dewar@adacore.com>
      
      	* sem_type.adb, einfo.ads, freeze.adb, exp_ch4.adb, sem_ch13.adb:
      	Minor reformatting.
      
      2011-08-29  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_util.adb (Requires_Cleanup_Actions (List_Id, Boolean, Boolean)):
      	Correct the check which involves the freeze node of a controlled or
      	access-to-controlled type.
      
      2011-08-29  Geert Bosch  <bosch@adacore.com>
      
      	* sem_warn.adb (Check_Code_Statement): Remove check for consecutive Asm
      	statements.
      	* s-vaflop-vms-alpha.adb: Remove bogus Volatile => True arguments from
      	Asm statements.
      
      From-SVN: r178160
      Arnaud Charlet committed
    • [multiple changes] · cf161d66
      2011-08-29  Yannick Moy  <moy@adacore.com>
      
      	* sem_ch3.adb (Array_Type_Declaration): Insert a subtype declaration
      	for every index type and component type that is not a subtype_mark.
      	(Process_Subtype): Set Etype of subtype.
      
      2011-08-29  Robert Dewar  <dewar@adacore.com>
      
      	* a-cbmutr.adb, a-cimutr.adb, a-comutr.adb, prj-nmsc.adb: Minor code
      	reorganization.  Minor reformatting.
      
      From-SVN: r178159
      Arnaud Charlet committed
    • [multiple changes] · 7cc83cd8
      2011-08-29  Steve Baird  <baird@adacore.com>
      
      	* exp_ch4.adb (Expand_N_Op_Expon): Suppress N_Op_Expon node expansion
      	for CodePeer and ALFA modes.
      
      2011-08-29  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_type.adb (Collect_Interps): Within an instance, collect a homonym
      	that comes from an enclosing scope if it is not the renaming of an
      	actual, to handle properly a spurious ambiguity in an instance.
      
      From-SVN: r178158
      Arnaud Charlet committed
    • [multiple changes] · 76af4137
      2011-08-29  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* sem_ch13.adb (Alignment_Check_For_Esize_Change): Rename to...
      	(Alignment_Check_For_Size_Change): ...this.  Add SIZE parameter and
      	use it instead of the Esize of the first parameter.
      	(Analyze_Attribute_Definition_Clause) <Object_Size>: Adjust call to
      	above change.
      	<Size>: Likewise.  Call it for composite types on the RM size.
      
      2011-08-29  Yannick Moy  <moy@adacore.com>
      
      	* exp_ch4.adb (Expand_N_Op_Not): Do not expand not on array.
      	* sem_util.adb (Unique_Name): Correct behaviour for names of
      	compilation units.
      
      From-SVN: r178157
      Arnaud Charlet committed
    • [multiple changes] · 9b20e59b
      2011-08-29  Yannick Moy  <moy@adacore.com>
      
      	* sem_prag.adb (Check_Precondition_Postcondition): In formal
      	verification mode, analyze pragma expression for correctness, for
      	pre/post on library-level subprogram, as it is not expanded later.
      
      2011-08-29  Yannick Moy  <moy@adacore.com>
      
      	* exp_aggr.adb (Expand_Array_Aggregate): Do not expand array aggregates
      	in formal verification.
      
      2011-08-29  Thomas Quinot  <quinot@adacore.com>
      
      	* sem_util.adb: Minor reformatting.
      	* freeze.adb, sem_ch13.adb: Fix comment: Bit_Order is an attribute,
      	there's no pragma.
      	* par_sco.ads, par_sco.adb: Update comments.
      
      2011-08-29  Yannick Moy  <moy@adacore.com>
      
      	* einfo.adb, einfo.ads: Remove flag Is_Postcondition_Proc and
      	associated getter/setter.
      	* sem_ch6.adb: Remove reference to Is_Postcondition_Proc.
      
      2011-08-29  Vincent Celier  <celier@adacore.com>
      
      	* prj-attr.adb: New Compiler attribute Dependency_Kind and Language_Kind
      	* prj-conf.adb: Add_Default_GNAT_Naming_Scheme: Add a package Compiler
      	with declarations for Language_Kind and Dependency_Kind for Ada.
      	* prj-nmsc.adb (Check_Unit_Name): New name of procedure Check_Ada_Name
      	(Process_Compiler): Take into account the new attributes Dependency_Kind
      	and Language_Kind.
      	(Check_Configuration): Check if language kind is unit based, not if the
      	language name is Ada.
      	(Process_Exceptions_Unit_Based): Ditto
      	(Add_Language): Remove default additions of language and dependency kind
      	* prj.ads: Minor comment change
      	* snames.ads-tmpl: New standard names Dependency_Kind and Language_Kind
      
      2011-08-29  Johannes Kanig  <kanig@adacore.com>
      
      	* debug.adb: Update comments.
      
      From-SVN: r178156
      Arnaud Charlet committed
    • Daily bump. · 6d2a312e
      From-SVN: r178152
      GCC Administrator committed
  2. 28 Aug, 2011 7 commits
    • move.h (swap(_Tp(&)[_Nm], _Tp(&)[_Nm])): Remove workaround for c++/49045. · 75f5cbb1
      2011-08-28  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* include/bits/move.h (swap(_Tp(&)[_Nm], _Tp(&)[_Nm])): Remove
      	workaround for c++/49045.
      	* include/bits/algorithmfwd.h: Likewise.
      
      From-SVN: r178147
      Paolo Carlini committed
    • Fix the use of linemap_add and remove unnecessary kludge · 892a371f
      libcpp/
      
      	* line-map.c (linemap_add): Assert that reason must not be
      	LC_RENAME when called for the first time on a "main input file".
      
      c-family/
      
      	* c-pch.c (c_common_read_pch): Call linemap_add with LC_ENTER as it's
      	the first time it's being called on this main TU.
      
      gcc/lto/
      
      	* lto-lang.c (lto_init): Likewise.  Also, avoid calling
      	linemap_add twice.
      
      gcc/fortran/
      
      	* scanner.c (load_file): Don't abuse LC_RENAME reason while
      	(indirectly) calling linemap_add.
      
      From-SVN: r178146
      Dodji Seketeli committed
    • Core DR 342 PR c++/48582 · e90abaa0
      	Core DR 342
      	PR c++/48582
      	* pt.c (check_valid_ptrmem_cst_expr): A null member pointer value
      	is valid in C++11.
      	(convert_nontype_argument): Likewise.  Implicitly convert nullptr
      	and do constant folding.
      	* mangle.c (write_template_arg_literal): Mangle null member
      	pointer values as 0.
      	* call.c (null_member_pointer_value_p): New.
      	* cp-tree.h: Declare it.
      
      From-SVN: r178144
      Jason Merrill committed
    • * ja.po: Update. · 2aef967b
      From-SVN: r178142
      Joseph Myers committed
    • re PR bootstrap/50218 (tree-ssa-loop-ivopts.c triggers… · 76725a03
      re PR bootstrap/50218 (tree-ssa-loop-ivopts.c triggers -Werror=maybe-uninitialized breaking i686-linux bootstrap)
      
      2011-08-28  Mikael Pettersson  <mikpe@it.uu.se>
      
      	PR bootstrap/50218
      	* tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Initialize
      	comp.
      
      From-SVN: r178141
      Mikael Pettersson committed
    • re PR fortran/48066 (Segfault with SUM of zero-sized array) · 3d2244b9
      2011-08-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/40866
      	* generated/iall_i1.c: Regenerated.
      	* generated/iall_i16.c: Regenerated.
      	* generated/iall_i2.c: Regenerated.
      	* generated/iall_i4.c: Regenerated.
      	* generated/iall_i8.c: Regenerated.
      	* generated/iany_i1.c: Regenerated.
      	* generated/iany_i16.c: Regenerated.
      	* generated/iany_i2.c: Regenerated.
      	* generated/iany_i4.c: Regenerated.
      	* generated/iany_i8.c: Regenerated.
      	* generated/iparity_i1.c: Regenerated.
      	* generated/iparity_i16.c: Regenerated.
      	* generated/iparity_i2.c: Regenerated.
      	* generated/iparity_i4.c: Regenerated.
      	* generated/iparity_i8.c: Regenerated.
      	* generated/norm2_r10.c: Regenerated.
      	* generated/norm2_r16.c: Regenerated.
      	* generated/norm2_r4.c: Regenerated.
      	* generated/norm2_r8.c: Regenerated.
      	* generated/parity_l1.c: Regenerated.
      	* generated/parity_l16.c: Regenerated.
      	* generated/parity_l2.c: Regenerated.
      	* generated/parity_l4.c: Regenerated.
      	* generated/parity_l8.c: Regenerated.
      	* generated/misc_specifics.F90: Regenerated (comment change).
      	* generated/_abs_c10.F90: Regenerated (comment change).
      	* generated/_abs_c16.F90: Regenerated (comment change).
      	* generated/_abs_c4.F90: Regenerated (comment change).
      	* generated/_abs_c8.F90: Regenerated (comment change).
      	* generated/_abs_i16.F90: Regenerated (comment change).
      	* generated/_abs_i4.F90: Regenerated (comment change).
      	* generated/_abs_i8.F90: Regenerated (comment change).
      	* generated/_abs_r10.F90: Regenerated (comment change).
      	* generated/_abs_r16.F90: Regenerated (comment change).
      	* generated/_abs_r4.F90: Regenerated (comment change).
      	* generated/_abs_r8.F90: Regenerated (comment change).
      	* generated/_acosh_r10.F90: Regenerated (comment change).
      	* generated/_acosh_r16.F90: Regenerated (comment change).
      	* generated/_acosh_r4.F90: Regenerated (comment change).
      	* generated/_acosh_r8.F90: Regenerated (comment change).
      	* generated/_acos_r10.F90: Regenerated (comment change).
      	* generated/_acos_r16.F90: Regenerated (comment change).
      	* generated/_acos_r4.F90: Regenerated (comment change).
      	* generated/_acos_r8.F90: Regenerated (comment change).
      	* generated/_aimag_c10.F90: Regenerated (comment change).
      	* generated/_aimag_c16.F90: Regenerated (comment change).
      	* generated/_aimag_c4.F90: Regenerated (comment change).
      	* generated/_aimag_c8.F90: Regenerated (comment change).
      	* generated/_aint_r10.F90: Regenerated (comment change).
      	* generated/_aint_r16.F90: Regenerated (comment change).
      	* generated/_aint_r4.F90: Regenerated (comment change).
      	* generated/_aint_r8.F90: Regenerated (comment change).
      	* generated/_anint_r10.F90: Regenerated (comment change).
      	* generated/_anint_r16.F90: Regenerated (comment change).
      	* generated/_anint_r4.F90: Regenerated (comment change).
      	* generated/_anint_r8.F90: Regenerated (comment change).
      	* generated/_asinh_r10.F90: Regenerated (comment change).
      	* generated/_asinh_r16.F90: Regenerated (comment change).
      	* generated/_asinh_r4.F90: Regenerated (comment change).
      	* generated/_asinh_r8.F90: Regenerated (comment change).
      	* generated/_asin_r10.F90: Regenerated (comment change).
      	* generated/_asin_r16.F90: Regenerated (comment change).
      	* generated/_asin_r4.F90: Regenerated (comment change).
      	* generated/_asin_r8.F90: Regenerated (comment change).
      	* generated/_atan2_r10.F90: Regenerated (comment change).
      	* generated/_atan2_r16.F90: Regenerated (comment change).
      	* generated/_atan2_r4.F90: Regenerated (comment change).
      	* generated/_atan2_r8.F90: Regenerated (comment change).
      	* generated/_atanh_r10.F90: Regenerated (comment change).
      	* generated/_atanh_r16.F90: Regenerated (comment change).
      	* generated/_atanh_r4.F90: Regenerated (comment change).
      	* generated/_atanh_r8.F90: Regenerated (comment change).
      	* generated/_atan_r10.F90: Regenerated (comment change).
      	* generated/_atan_r16.F90: Regenerated (comment change).
      	* generated/_atan_r4.F90: Regenerated (comment change).
      	* generated/_atan_r8.F90: Regenerated (comment change).
      	* generated/_conjg_c10.F90: Regenerated (comment change).
      	* generated/_conjg_c16.F90: Regenerated (comment change).
      	* generated/_conjg_c4.F90: Regenerated (comment change).
      	* generated/_conjg_c8.F90: Regenerated (comment change).
      	* generated/_cosh_r10.F90: Regenerated (comment change).
      	* generated/_cosh_r16.F90: Regenerated (comment change).
      	* generated/_cosh_r4.F90: Regenerated (comment change).
      	* generated/_cosh_r8.F90: Regenerated (comment change).
      	* generated/_cos_c10.F90: Regenerated (comment change).
      	* generated/_cos_c16.F90: Regenerated (comment change).
      	* generated/_cos_c4.F90: Regenerated (comment change).
      	* generated/_cos_c8.F90: Regenerated (comment change).
      	* generated/_cos_r10.F90: Regenerated (comment change).
      	* generated/_cos_r16.F90: Regenerated (comment change).
      	* generated/_cos_r4.F90: Regenerated (comment change).
      	* generated/_cos_r8.F90: Regenerated (comment change).
      	* generated/_dim_i16.F90: Regenerated (comment change).
      	* generated/_dim_i4.F90: Regenerated (comment change).
      	* generated/_dim_i8.F90: Regenerated (comment change).
      	* generated/_dim_r10.F90: Regenerated (comment change).
      	* generated/_dim_r16.F90: Regenerated (comment change).
      	* generated/_dim_r4.F90: Regenerated (comment change).
      	* generated/_dim_r8.F90: Regenerated (comment change).
      	* generated/_exp_c10.F90: Regenerated (comment change).
      	* generated/_exp_c16.F90: Regenerated (comment change).
      	* generated/_exp_c4.F90: Regenerated (comment change).
      	* generated/_exp_c8.F90: Regenerated (comment change).
      	* generated/_exp_r10.F90: Regenerated (comment change).
      	* generated/_exp_r16.F90: Regenerated (comment change).
      	* generated/_exp_r4.F90: Regenerated (comment change).
      	* generated/_exp_r8.F90: Regenerated (comment change).
      	* generated/_log10_r10.F90: Regenerated (comment change).
      	* generated/_log10_r16.F90: Regenerated (comment change).
      	* generated/_log10_r4.F90: Regenerated (comment change).
      	* generated/_log10_r8.F90: Regenerated (comment change).
      	* generated/_log_c10.F90: Regenerated (comment change).
      	* generated/_log_c16.F90: Regenerated (comment change).
      	* generated/_log_c4.F90: Regenerated (comment change).
      	* generated/_log_c8.F90: Regenerated (comment change).
      	* generated/_log_r10.F90: Regenerated (comment change).
      	* generated/_log_r16.F90: Regenerated (comment change).
      	* generated/_log_r4.F90: Regenerated (comment change).
      	* generated/_log_r8.F90: Regenerated (comment change).
      	* generated/_mod_i16.F90: Regenerated (comment change).
      	* generated/_mod_i4.F90: Regenerated (comment change).
      	* generated/_mod_i8.F90: Regenerated (comment change).
      	* generated/_mod_r10.F90: Regenerated (comment change).
      	* generated/_mod_r16.F90: Regenerated (comment change).
      	* generated/_mod_r4.F90: Regenerated (comment change).
      	* generated/_mod_r8.F90: Regenerated (comment change).
      	* generated/_sign_i16.F90: Regenerated (comment change).
      	* generated/_sign_i4.F90: Regenerated (comment change).
      	* generated/_sign_i8.F90: Regenerated (comment change).
      	* generated/_sign_r10.F90: Regenerated (comment change).
      	* generated/_sign_r16.F90: Regenerated (comment change).
      	* generated/_sign_r4.F90: Regenerated (comment change).
      	* generated/_sign_r8.F90: Regenerated (comment change).
      	* generated/_sinh_r10.F90: Regenerated (comment change).
      	* generated/_sinh_r16.F90: Regenerated (comment change).
      	* generated/_sinh_r4.F90: Regenerated (comment change).
      	* generated/_sinh_r8.F90: Regenerated (comment change).
      	* generated/_sin_c10.F90: Regenerated (comment change).
      	* generated/_sin_c16.F90: Regenerated (comment change).
      	* generated/_sin_c4.F90: Regenerated (comment change).
      	* generated/_sin_c8.F90: Regenerated (comment change).
      	* generated/_sin_r10.F90: Regenerated (comment change).
      	* generated/_sin_r16.F90: Regenerated (comment change).
      	* generated/_sin_r4.F90: Regenerated (comment change).
      	* generated/_sin_r8.F90: Regenerated (comment change).
      	* generated/_sqrt_c10.F90: Regenerated (comment change).
      	* generated/_sqrt_c16.F90: Regenerated (comment change).
      	* generated/_sqrt_c4.F90: Regenerated (comment change).
      	* generated/_sqrt_c8.F90: Regenerated (comment change).
      	* generated/_sqrt_r10.F90: Regenerated (comment change).
      	* generated/_sqrt_r16.F90: Regenerated (comment change).
      	* generated/_sqrt_r4.F90: Regenerated (comment change).
      	* generated/_sqrt_r8.F90: Regenerated (comment change).
      	* generated/_tanh_r10.F90: Regenerated (comment change).
      	* generated/_tanh_r16.F90: Regenerated (comment change).
      	* generated/_tanh_r4.F90: Regenerated (comment change).
      	* generated/_tanh_r8.F90: Regenerated (comment change).
      	* generated/_tan_r10.F90: Regenerated (comment change).
      	* generated/_tan_r16.F90: Regenerated (comment change).
      	* generated/_tan_r4.F90: Regenerated (comment change).
      	* generated/_tan_r8.F90: Regenerated (comment change).
      
      From-SVN: r178140
      Thomas Koenig committed
    • Daily bump. · aa35481f
      From-SVN: r178139
      GCC Administrator committed
  3. 27 Aug, 2011 4 commits
    • rtl.texi (simple_return): Document. · 26898771
      	* doc/rtl.texi (simple_return): Document.
      	(parallel, PATTERN): Here too.
      	* doc/md.texi (return): Mention it's allowed to expand to simple_return
      	in some cases.
      	(simple_return): Document standard pattern.
      	* gengenrtl.c (special_rtx): SIMPLE_RETURN is special.
      	* final.c (final_scan_insn): Use ANY_RETURN_P on body.
      	* reorg.c (function_return_label, function_simple_return_label):
      	New static variables, replacing...
      	(end_of_function_label): ... this.
      	(simplejump_or_return_p): New static function.
      	(optimize_skip, steal_delay_list_from_fallthrough,
      	fill_slots_from_thread): Use it.
      	(relax_delay_slots): Likewise.  Use ANY_RETURN_P on body.
      	(rare_destination, follow_jumps): Use ANY_RETURN_P on body.
      	(find_end_label): Take a new arg which is one of the two return
      	rtxs.  Depending on which, set either function_return_label or
      	function_simple_return_label.  All callers changed.
      	(make_return_insns): Make both kinds.
      	(dbr_schedule): Adjust for two kinds of end labels.
      	* function.c (emit_return_into_block): Set JUMP_LABEL properly.
      	* genemit.c (gen_exp): Handle SIMPLE_RETURN.
      	(gen_expand, gen_split): Use ANY_RETURN_P.
      	* df-scan.c (df_uses_record): Handle SIMPLE_RETURN.
      	* rtl.def (SIMPLE_RETURN): New code.
      	* ifcvt.c (find_if_case_1): Be more careful about
      	redirecting jumps to the EXIT_BLOCK.
      	* jump.c (condjump_p, condjump_in_parallel_p, any_condjump_p,
      	returnjump_p_1): Handle SIMPLE_RETURNs.
      	* print-rtl.c (print_rtx): Likewise.
      	* rtl.c (copy_rtx): Likewise.
      	* bt-load.c (compute_defs_uses_and_gen): Use ANY_RETURN_P.
      	* combine.c (simplify_set): Likewise.
      	* resource.c (find_dead_or_set_registers, mark_set_resources):
      	Likewise.
      	* emit-rtl.c (verify_rtx_sharing, classify_insn, copy_insn_1,
      	copy_rtx_if_shared_1, mark_used_flags): Handle SIMPLE_RETURNs.
      	(init_emit_regs): Initialize simple_return_rtx.
      	* cfglayout.c (fixup_reorder_chain): Pass a JUMP_LABEL to
      	force_nonfallthru_and_redirect.
      	* rtl.h (ANY_RETURN_P): Allow SIMPLE_RETURN.
      	(GR_SIMPLE_RETURN): New enum value.
      	(simple_return_rtx): New macro.
      	* basic-block.h (force_nonfallthru_and_redirect): Adjust
      	declaration.
      	* cfgrtl.c (force_nonfallthru_and_redirect): Take a new jump_label
      	argument.  All callers changed.  Be careful about what kinds of
      	returnjumps to generate.
      	* config/i386/3i86.c (ix86_pad_returns, ix86_count_insn_bb,
      	ix86_pad_short_function): Likewise.
      	* config/arm/arm.c (arm_final_prescan_insn): Handle both kinds
      	of return.
      	* config/mips/mips.md (any_return): New code_iterator.
      	(optab): Add cases for return and simple_return.
      	(return): Expand to a simple_return.
      	(simple_return): New pattern.
      	(*<optab>, *<optab>_internal for any_return): New patterns.
      	(return_internal): Remove.
      	* config/mips/mips.c (mips_expand_epilogue): Make the last insn
      	a simple_return_internal.
      
      From-SVN: r178135
      Bernd Schmidt committed
    • sse.md (*absneg<mode>2): Fix split condition. · 3b0eee5d
      	* config/i386/sse.md (*absneg<mode>2): Fix split condition.
      	(vec_extract_lo_<mode>): Prevent both operands in memory.
      	(vec_extract_lo_v16hi): Ditto.
      	(*vec_extract_v4sf_mem): Add TARGET_SSE insn constraint.
      
      	* config/i386/sse.md (mulv16qi3): Attach REG_EQUAL note.
      	(*sse2_mulv4si3): Ditto.
      	(mulv2di3): Ditto.
      	* config/i386/i386.c (legitimize_tls_address): Change REG_EQIV
      	notes to REG_EQUAL.
      
      From-SVN: r178132
      Uros Bizjak committed
    • re PR target/50202 (ICE: in final_scan_insn, at final.c:2709 (could not split… · b807694e
      re PR target/50202 (ICE: in final_scan_insn, at final.c:2709 (could not split insn) with __builtin_ia32_pcmpistri128)
      
      	PR target/50202
      	* config/i386/sse.md (sse4_2_pcmpestr): Emit NOTE_INSN_DELETED note
      	when all outputs are unused.
      	(sse4_2_pcmpestr): Ditto.
      
      testsuite/ChangeLog:
      
      	PR target/50202
      	* gcc.target/i386/pr50202.c: New test.
      
      From-SVN: r178130
      Uros Bizjak committed
    • Daily bump. · 851018fb
      From-SVN: r178129
      GCC Administrator committed