Commit Graph

82596 Commits

Author SHA1 Message Date
Rask Ingemann Lambertsen
d39d658dbe re PR target/30315 (optimize unsigned-add overflow test on x86 to use cpu flags from addl)
PR target/30315
	* config/i386/i386.h (CANONICALIZE_COMPARISON): New.
	* config/i386/i386.md (plusminus)(addsub)(SWI): New.
	(*<addsub><mode>3_cc_overflow): New.
	(*add<mode>3_cconly_overflow): New.
	(*sub<mode>3_cconly_overflow): New.
	(*<addsub>si3_zext_cc_overflow): New.
	* config/i386/predicates.md (fcmov_comparison_operator): Accept
	CCCmode for LTU, GTU, LEU and GEU.
	(ix86_comparison_operator): Likewise.
	(ix86_carry_flag_operator): Carry flag is set if LTU or GTU in CCCmode.
	* gcc/config/i386/i386.c (put_condition_code): Support CCCmode.
	(ix86_cc_mode): Use CCCmode when testing for overflow of PLUS
	or MINUS expressions.

testsuite/
	PR target/30315
	* gcc.target/i386/pr30315.c: New.

From-SVN: r127481
2007-08-14 14:39:24 +00:00
Francois-Xavier Coudert
9a251aa118 re PR fortran/32594 (substring simplification leads to ICE)
PR fortran/32594

	* trans-expr.c (gfc_conv_substring_expr): Only call
	gfc_conv_substring if expr->ref is not NULL.
	* expr.c (gfc_is_constant_expr): If e->ref is NULL, the substring
	expression might be a constant.
	(gfc_simplify_expr): Handle missing start and end, as well as
	missing ref.

	* gfortran.dg/substr_5.f90: New test.

From-SVN: r127478
2007-08-14 12:44:19 +00:00
Andrew Pinski
9ef0c8d982 re PR c/30428 (vector float | vector float is accepted)
2007-08-14  Andrew Pinski  <pinskia@gmail.com>

        PR c/30428
        * c-typeck.c (build_binary_op): Disallow vector float types with
        BIT_IOR_EXPR, BIT_AND_EXPR, and BIT_XOR_EXPR.

2007-08-14  Andrew Pinski  <pinskia@gmail.com>

        PR c++/30428
        * typeck.c (build_binary_op): Disallow vector float types with
        BIT_IOR_EXPR, BIT_AND_EXPR, and BIT_XOR_EXPR.

2007-08-14  Andrew Pinski  <pinskia@gmail.com>

        PR c/30428
        * gcc.dg/vector-2.c: New test.

        PR c++/30428
        * g++.dg/ext/vector8.C: New test.

From-SVN: r127477
2007-08-14 02:24:26 -07:00
Arnaud Charlet
ab6328d08e Resync
From-SVN: r127476
2007-08-14 11:19:30 +02:00
Arnaud Charlet
38aa612c51 Minor reformatting.
Update comments.

From-SVN: r127475
2007-08-14 11:05:23 +02:00
Arnaud Charlet
762031177e (Write_Eol): Remove trailing spaces before writing the line
(Write_Eol): Remove trailing spaces before writing the line
	(Write_Eol_Keep_Blanks): New procedure to write a line, including
	possible trailing spaces.
	(Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
	Fix problem with suppressing warning messages from back end
	Improve handling of deleted warnings

From-SVN: r127474
2007-08-14 11:04:48 +02:00
Arnaud Charlet
da15c1cd88 (Task_Cont, Task_Stop): New functions, thin binding to the VxWorks routines which have changed between VxWorks 5 and 6.
(Task_Cont, Task_Stop): New functions, thin
	binding to the VxWorks routines which have changed between VxWorks 5
	and 6.
	(Int_Lock, Int_Unlock): New function, thin binding to kernel routines
	which are not callable from a RTP.

From-SVN: r127473
2007-08-14 11:03:24 +02:00
Arnaud Charlet
d58fb3be42 (Output_Non_Modifed_In_Out_Warnings, Warn_On_Unassigned_Out_Parameter):
New functions.

From-SVN: r127472
2007-08-14 11:01:52 +02:00
Arnaud Charlet
434632cea8 (Check_References.Publicly_Referenceable): A formal parameter is never publicly referenceable outside of its body.
(Check_References.Publicly_Referenceable): A formal parameter is never
	publicly referenceable outside of its body.
	(Check_References): For an unreferenced formal parameter in an accecpt
	statement, use the same warning circuitry as for subprogram formal
	parameters.  
	(Warn_On_Unreferenced_Entity): New subprogram, taken from
	Output_Unreferenced_Messages, containing the part of that routine that
	is now reused for entry formals as described above.
	(Has_Pragma_Unreferenced_Check_Spec): New function
	(Check_References): Clean up handling of unmodified IN OUT parameters

From-SVN: r127471
2007-08-14 11:00:48 +02:00
Arnaud Charlet
a43050d35a (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call and N_Procedure_Call_Statement.
(lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
	and N_Procedure_Call_Statement.
	(takes_address): Rename to lvalue_required_p, add third parameter
	'aliased'
	and adjust recursive calls.
	<N_Indexed_Component>: Update 'aliased' from the array type.
	<N_Selected_Component>: New case.
	<N_Object_Renaming_Declaration>: New Likewise.
	(Identifier_to_gnu): Adjust for above changes.
	(maybe_stabilize_reference) <CONST_DECL>: New case.

From-SVN: r127470
2007-08-14 10:58:31 +02:00
Arnaud Charlet
be6aaf7f3d (Generic_Separately_Compiled): Rename to Generic_May_Lack_ALI...
(Generic_Separately_Compiled): Rename to Generic_May_Lack_ALI, more
	descriptive of the current use of the predicate, and update
	documentation.

From-SVN: r127469
2007-08-14 10:56:20 +02:00
Arnaud Charlet
f9622ab143 exp_atag.adb (Build_Inherit_Prims): Addition of a new formal.
* exp_atag.adb (Build_Inherit_Prims): Addition of a new formal.
	(Build_Inherit_Predefined_Prims): Replace occurrences of Default_
	Prim_Op_Count by Max_Predef_Prims.

From-SVN: r127468
2007-08-14 10:55:26 +02:00
Arnaud Charlet
33c423c8b2 [multiple changes]
2007-08-14  Geert Bosch  <bosch@adacore.com>

	* i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
	s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
	Add required linker pragmas for automatically linking with the gnalasup
	linear algebra support library, and the systems math library.
	Rename cdot to cdotu and zdot to zdotu.
	Update header comment to describe purpose of package.

2007-08-14  Thomas Quinot  <quinot@adacore.com>

	* exp_ch7.adb (Find_Final_List): For an anonymous access type that has
	an explicitly specified Associated_Final_Chain, use that list.
	(Expand_N_Package_Body): Build dispatch tables of library level tagged
	types.
	(Expand_N_Package_Declaration): Build dispatch tables of library level
	tagged types. Minor code cleanup.

2007-08-14  Vincent Celier  <celier@adacore.com>

	* gnatchop.adb (Terminate_Program): Remove exception and use
	Types.Terminate_Program instead.

	* osint.ads, osint.adb (Current_Exit_Status): New global variable
	(Find_Program_Name): Added protection against empty name.
	(OS_Exit_Through_Exception): New procedure

	* s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
	(OS_Exit_Default): New procedure that contains the previous
	implementation of procedure OS_Exit.
	(Final_Value): Remove obsolete Interix stuff.

2007-08-14  Thomas Quinot  <quinot@adacore.com>

	* g-socket.ads: Reorganize example code so that it also works on
	Windows XP.

2007-08-14  Tristan Gingold  <gingold@adacore.com>

	* g-trasym.ads: AIX now supports symbolic backtraces.

2007-08-14  Ed Schonberg  <schonberg@adacore.com>

	* lib-load.adb (From_Limited_With_Chain): Always scan the stack of
	units being loaded to detect circularities. A circularity may be
	present even if the current chain of pending units to load starts from
	a limited_with_clause.

	* lib-load.ads: Change profile of Load_Unit to use a with_clause
	rather than a boolean flag, in order to detect circularities in
	with_clauses.

	* par-load.adb: Use current with_clause in calls to Load_Unit, rather
	than propagating the From_Limited_With flag, in order to handle
	properly circularities involving with_clauses.

2007-08-14  Nicolas Setton  <setton@adacore.com>

	* link.c (FreeBSD): Add "const" keyword where needed, to eliminate
	warnings.

2007-08-14  Arnaud Charlet  <charlet@adacore.com>

	* Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
	to build for libgnala.
	libgnat: Add rules to build libgnala.a
	(LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
	target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
	Add s-osinte-vxworks-kernel.adb to the target pairs of the
	kernel run-time lib for VxWorks 6, which would provide a different
	implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
	x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
	running ZCX by default.
	Add g-sttsne-locking to LynxOS version.
	Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
	On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.

	* system-darwin-x86.ads: New file.

	* Make-lang.in: Delete files before copying onto them, so if they are
	read-only, the copy won't fail.
	Update dependencies

2007-08-14  Pascal Obry  <obry@adacore.com>

	* mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
	naming scheme.

2007-08-14  Vincent Celier  <celier@adacore.com>

	* mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
	(Gcc): Initialize Gcc_Name at the first call

2007-08-14  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch7.adb (Analyze_Package_Specification): Do not install private
	with_clauses of the enclosing unit when analyzing the package
	specification of a nested instance.

2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>

	* sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
	(Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
	Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
	layout of N_Allocator.

2007-08-14  Thomas Quinot  <quinot@adacore.com>

	* rtsfind.adb (Check_RPC): Add PCS version check.

	* gnatvsn.ads, gnatvsn.adb: Add PCS version.
	(Gnat_Free_Software): New function.

	* sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
	the PCS_Version value from s-parint, used to check that it is consistent
	with what exp_dist expects.

	* s-parint.ads (PCS_Version): New entity for checking consistency
	between exp_dist and PCS.

	* gen-soccon.c: (SO_REUSEPORT): New constant.

2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>

	* a-calfor.adb (Image (Duration; Boolean)): Change type of local
	variable Sub_Second to Duration in order to accomodate a larger range
	of arithmetic operations.

2007-08-14  Bob Duff  <duff@adacore.com>

	* g-sttsne-locking.ads: Move comments from spec to body.
	* g-sttsne-locking.adb: Move comments from spec to body.
	* g-sttsne-vxworks.ads: Removed.
	* g-sttsne-vxworks.adb: Removed.

From-SVN: r127467
2007-08-14 10:50:51 +02:00
Tristan Gingold
6d64bc378c tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
2007-08-14  Tristan Gingold  <gingold@adacore.com>

	* tracebak.c: Use tb-ivms.c on OpenVMS Itanium.

	* tb-ivms.c: New file.

	* g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2

From-SVN: r127466
2007-08-14 10:50:30 +02:00
Gary Dismukes
6027ad8b26 s-veboop.adb (SU): New named number initialized to System.Storage_Unit.
2007-08-14  Gary Dismukes  <dismukes@adacore.com>

	* s-veboop.adb (SU): New named number initialized to
	System.Storage_Unit.
	(True_Val): The initialization expression is revised to use SU (=
	Storage_Unit) rather than assuming 8 for the component size of an
	unpacked Boolean array.

From-SVN: r127465
2007-08-14 10:50:18 +02:00
Arnaud Charlet
20dedfc175 s-tpobop.ads, [...] (Requeue_With_Abort): Rename field With_Abort.
2007-08-14  Arnaud Charlet  <charlet@adacore.com>

	* s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
	s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
	(PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
	parameter.

	* s-tassta.adb (Task_Wrapper): Increased value of the small overflow
	guard to 12K.

From-SVN: r127464
2007-08-14 10:50:09 +02:00
Jose Ruiz
cc8be39eb7 s-tasini.adb (Get_Stack_Info): Move this function to System.Soft_Links.Tasking because it is common to the...
2007-08-14  Jose Ruiz  <ruiz@adacore.com>

	* s-tasini.adb (Get_Stack_Info): Move this function to
	System.Soft_Links.Tasking because it is common to the full and the
	restricted run times.
	(Init_RTS): Do not set the Get_Stack_Info soft link because it is done
	in SSL.Tasking.Init_Tasking_Soft_Links.

	* s-solita.adb (Get_Stack_Info): Function moved from
	System.Tasking.Initialization because it is common to the full and the
	restricted run times.
	(Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.

From-SVN: r127463
2007-08-14 10:49:56 +02:00
Cyrille Comar
95dd3302c5 s-finimp.adb (Detach_From_Final_List): make this procedure idempotent since it is potentially used in cases implying...
2007-08-14  Cyrille Comar  <comar@adacore.com>

	* s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
	since it is potentially used in cases implying double finalization of
	the same object.

From-SVN: r127462
2007-08-14 10:49:45 +02:00
Pascal Obry
2353aeebc5 s-fileio.adb (Is_Open): Add check for usability of the underlying file stream.
2007-08-14  Pascal Obry  <obry@adacore.com>

	* s-fileio.adb (Is_Open): Add check for usability of the underlying
	file stream.

From-SVN: r127461
2007-08-14 10:49:36 +02:00
Ed Schonberg
b1b1010fb7 s-ficobl.ads: Declare AFCB as a tagged incomplete type...
2007-08-14  Ed Schonberg  <schonberg@adacore.com>

	* s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
	obsolescent warning on application of 'Class to an incomplete type.

	* s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
	prevent obsolescent warning on application of 'Class to an incomplete
	type.

From-SVN: r127460
2007-08-14 10:49:26 +02:00
Javier Miranda
f9c0d38ccd sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a generated interface thunk.
2007-08-14  Javier Miranda  <miranda@adacore.com>

	* sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
	generated interface thunk.

From-SVN: r127459
2007-08-14 10:49:15 +02:00
Javier Miranda
d118a43e88 sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code that is common to Analyze_Protected_Type...
2007-08-14  Javier Miranda  <miranda@adacore.com>

	* sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
	that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
	of private types add missing check on matching interfaces in the
	partial and full declarations.
	(Analyze_Protected_Type): Code cleanup.
	(Analyze_Task_Type): Code cleanup.

From-SVN: r127458
2007-08-14 10:49:06 +02:00
Javier Miranda
4210c97522 par-ch6.adb (P_Formal_Part): Fix wrong error message associated with null-excluding access types.
2007-08-14  Javier Miranda  <miranda@adacore.com>

	* par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
	null-excluding access types.

From-SVN: r127457
2007-08-14 10:48:56 +02:00
Vincent Celier
b63e38373a output.ads, output.adb (Write_Eol): Remove trailing spaces before writing the line.
2007-08-14  Vincent Celier  <celier@adacore.com>

	* output.ads, output.adb (Write_Eol): Remove trailing spaces before
	writing the line.
	(Write_Eol_Keep_Blanks): New procedure to write a line, including
	possible trailing spaces.
	(Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line

From-SVN: r127456
2007-08-14 10:48:45 +02:00
Gary Dismukes
4993417734 layout.adb (Layout_Type): In the case of access-to-subprogram types...
2007-08-14  Gary Dismukes  <dismukes@adacore.com>

	* layout.adb (Layout_Type): In the case of access-to-subprogram types,
	if AAMP_On_Target is True, then the size of the type encompasses two
	addresses (a static link and a subprogram address), except in the case
	of library-level access types.

From-SVN: r127455
2007-08-14 10:48:36 +02:00
Paul Hilfinger
6812b99bfe impunit.adb: Re-organize System.Random_Numbers and GNAT.Random_Numbers and add to builds.
2007-08-14  Paul Hilfinger  <hilfinger@adacore.com>

	* impunit.adb: Re-organize System.Random_Numbers and
	GNAT.Random_Numbers and add to builds.

	* Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*

	* s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.

	* a-assert.ads, a-assert.adb: New files.

From-SVN: r127454
2007-08-14 10:48:27 +02:00
Vincent Celier
f86eb27890 gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
2007-08-14  Vincent Celier  <celier@adacore.com>

	* gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
	(Output_Source): Do nothing if parameter is No_Sdep_Id

	* make.adb (Gnatmake): Do not rebuild an archive simply because a
	shared library it imports has a later time stamp.
	(Check): Resolve the symbolic links in the path name of the object
	directory.
	Check that the ALI file is in the correct object directory
	Check if a file name does not correspond to the mapping of units
	to file names.
	(Display_Version): New procedure
	(Initialize): Process switches --version and --help
	Use type Path_Name_Type for path name

From-SVN: r127453
2007-08-14 10:48:16 +02:00
Eric Botcazou
7a91273053 gnatlink.adb (Gnatlink): Pass switches to the linker even if the binder-generated file is not in Ada.
2007-08-14  Eric Botcazou  <ebotcazou@adacore.com>

	* gnatlink.adb (Gnatlink): Pass switches to the linker even if the
	binder-generated file is not in Ada.
	Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
	recorded in the ALI file.
	Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.

From-SVN: r127452
2007-08-14 10:48:07 +02:00
Emmanuel Briot
171d182e7f g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing switches.
2007-08-14  Emmanuel Briot  <briot@adacore.com>

	* g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
	switches.

From-SVN: r127451
2007-08-14 10:47:56 +02:00
Hristian Kirtchev
154c16575f g-catiio.adb (Image): For the case of %s...
2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>

	* g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
	values to compute the number of seconds since the Unix Epoc in order to
	account for Daylight Savings Time. Perform special processing for dates
	that are earlier than the Unix Epoc to obtain a negative number.

From-SVN: r127450
2007-08-14 10:47:45 +02:00
Thomas Quinot
bfc2cdb1e7 exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating typecode parameters for a union (in a variant record)...
2007-08-14  Thomas Quinot  <quinot@adacore.com>

	* exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
	typecode parameters for a union (in a variant record), remove
	extraneous layer of Any wrapping for member label.
	(Expand_Receiving_Stubs_Bodies): For an RCI package body that has
	elabration statements, register the package with the name server
	at the beginning, not at the end, of the elaboration statements so
	that they can create remote access to subprogram values that designate
	remote subprograms from the package.

From-SVN: r127449
2007-08-14 10:47:36 +02:00
Javier Miranda
9f6ea00a89 exp_ch9.adb (Build_Protected_Entry): Propagate the original source location to allow the correct generation of...
2007-08-14  Javier Miranda  <miranda@adacore.com>
	    Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch9.adb (Build_Protected_Entry): Propagate the original source
	location to allow the correct generation of errors in case of
	restrictions applied to the expanded code.
	(Expand_Entry_Barrier): Remove all generated renamings for a barrier
	function if the condition does not reference them.
	(Expand_Entry_Body_Declarations): Mark the index constant as having a
	valid value.

From-SVN: r127448
2007-08-14 10:47:24 +02:00
Ed Schonberg
aa5147f00a sem_res.adb (Resolve_Allocator): Propagate any coextensions that appear in the subtree to the current allocator...
2007-08-14  Ed Schonberg  <schonberg@adacore.com>
	    Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_res.adb (Resolve_Allocator): Propagate any coextensions that
	appear in the subtree to the current allocator if it is not a static
	coextension.
	(Resolve_Allocator): Perform cleanup if resolution has determined that
	the allocator is not a coextension.
	(Resolve): Skip an interpretation hidden by an abstract operator only
	when the type of the interpretation matches that of the context.
	(Resolve): When looping through all possible interpretations of a node,
	do not consider those that are hidden by abstract operators.
	(Resolve_Actuals): When verifying that an access to class-wide object
	is an actual  for a controlling formal, ignore anonymous access to
	subprograms whose return type is an access to class_wide type.
	(Resolve_Slice): If the prefix of the slice is a selected component
	whose type depends on discriminants, build its actual subtype before
	applying range checks on the bounds of the slice.
	(Valid_Conversion): In an instance or inlined body, compare root types,
	to prevent anomalies between private and public views.
	(Resolve): Improve error message for ambiguous fixed multiplication
	expressions that involve universal_fixed multiplying operations.

From-SVN: r127447
2007-08-14 10:47:12 +02:00
Thomas Quinot
11560bcc35 sem_ch8.ads, [...] (Find_Type, [...]): Use correct entity as denoted entity for the selector of the rewritten node.
2007-08-14  Thomas Quinot  <quinot@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
	reference): Use correct entity as denoted entity for the selector of
	the rewritten node.
	(Find_Direct_Name): Add comment about Generate_Reference incorrectly
	setting the Referenced_As_LHS flag for entities that are implicitly
	dereferenced.
	(Find_Type): If the type is an internally generated incomplete type,
	mark the full view as referenced, to prevent spurious warnings.
	(Find_Selected_Component, Has_Components): Handle properly non-limited
	views that are themselves incomplete types.
	Handle interfaces visible through limited-with clauses.
	(Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
	subprogram generic actual for which we have generated a renaming.
	Warn when the renaming introduces a homonym of
	the renamed entity, and the renamed entity is directly visible.

From-SVN: r127446
2007-08-14 10:46:54 +02:00
Thomas Quinot
fe685905a1 sem_cat.ads, [...] (Has_Stream_Attribute_Definition): New formal At_Any_Place indicating...
2007-08-14  Thomas Quinot  <quinot@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
	formal At_Any_Place indicating, when True, that we want to test for
	availability of the stream attribute at any place (as opposed to the
	current visibility context only).
	(Missing_Read_Write_Attributes): A stream attribute is missing for the
	purpose of enforcing E.2.2(8) only if it is not available at any place.
	Take into account the Ada2005 pragma Has_Preelaborable_Initialization
	when checking the legality of an extension aggregate in a preelaborable
	package. Treat the literal null as a valid default expression in a
	component declaration for a type with preelaborable initialization.
	A limited interface is a legal progenitor for the designated type of a
	remote access to class-wide type.

From-SVN: r127445
2007-08-14 10:46:43 +02:00
Ed Schonberg
401093c15c sem_ch4.adb (Try_Class_Wide_Operation): use base type of first parameter to determine whether operation applies to the...
2007-08-14  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
	parameter to determine whether operation applies to the prefix.
	(Complete_Object_Operation): If actual has an access type and
	controlling formal is not an in_parameter, reject the actual if it is
	an access_to_constant type.
	(Try_Primitive_Operation): If the type of the prefix is a formal tagged
	type, the candidate operations are found in the scope of declaration of
	the type, because the type has no primitive subprograms.
	(Analyze_Selected_Component): If prefix is class-wide, and root type is
	a private extension, only examine visible components before trying to
	analyze as a prefixed call.
	Change Entity_List to Type_To_Use, for better readability.
	(Has_Fixed_Op): Use base type when checking whether the type of an
	operator has a user-defined multiplication/division
	(Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
	user-defined operators are available for fixed-point types.

From-SVN: r127444
2007-08-14 10:46:31 +02:00
Ed Schonberg
1c0ce9d83b sem_ch12.ads, [...] (Instantiate_Type): If the formal is a derived type with interface progenitors use the analyzed...
2007-08-14  Ed Schonberg  <schonberg@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>
	    Thomas Quinot  <quinot@adacore.com>

	* sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
	derived type with interface progenitors use the analyzed formal as the
	parent of the actual, to create renamings for all the inherited
	operations in Derive_Subprograms.
	(Collect_Previous_Instances): new procedure within of
	Load_Parent_Of_Generic, to instantiate all bodies in the compilation
	unit being loaded, to ensure that the generation of global symbols is
	consistent in different compilation modes.
	(Is_Tagged_Ancestor): New function testing the ancestor relation that
	takes progenitor types into account.
	(Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
	traversing over the primitives of the formal and actual types to locate
	any abstract subprograms of the actual type that correspond to a
	nonabstract subprogram of the formal type's ancestor type(s), and issue
	an error if such is found.
	(Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
	Instantiate_Package_Body, Instantiate_Subprogram_Body):
	Remove bogus guard around calls to Inherit_Context.
	(Reset_Entity): If the entity is the selector of a selected component
	that denotes a named number, propagate constant-folding to the generic
	template only if the named number is global to the generic unit.
	(Set_Instance_Env): Only reset the compilation switches when compiling
	a predefined or internal unit.

From-SVN: r127443
2007-08-14 10:46:18 +02:00
Thomas Quinot
1d6f10a194 table.adb, [...] (Append): Reimplement in terms of Set_Item.
2007-08-14  Thomas Quinot  <quinot@adacore.com>

	* table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
	of Set_Item.
	(Set_Item): When the new item is an element of the currently allocated
	table passed by reference, save a copy on the stack if we're going
	to reallocate. Also, in Table.Set_Item, make sure we test the proper
	variable to determine whether to call Set_Last.

	* sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
	symbols-vms.adb, symbols-processing-vms-alpha.adb,
	symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
	some occurrences of the pattern
	   T.Increment_Last;
	   T.Table (T.Last) := Value;
	with a cleaner call to
	   T.Append (Value);

From-SVN: r127442
2007-08-14 10:46:03 +02:00
Bob Duff
f97ccb3a84 a-cihama.ads, [...] (Next): Applied pragma Inline.
2007-08-14  Bob Duff  <duff@adacore.com>

	* a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads, 
	a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
	a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads, 
	a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
	a-coorse.ads (Next): Applied pragma Inline.
	Make all Containers packages Remote_Types (unless they are already
	Pure).
	(Previous): applied pragma Inline
	(Elements_Type): is now a record instead of an array

From-SVN: r127441
2007-08-14 10:45:48 +02:00
Robert Dewar
b11e8d6fc0 s-intman-irix.adb, [...]: Minor reformatting
2007-08-14  Robert Dewar  <dewar@adacore.com>

	* s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
	s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
	s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
	s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
	s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
	s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
	s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
	s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
	exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
	s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
	s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
	a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
	s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
	g-altcon.adb: Minor reformatting

	ada-tree.h: Delete empty line.

	ali.ads: Minor reformatting
	Clarification of comments.
	Minor spelling correction

	* exp_dbug.adb: Add Warnings Off to suppress new warning

	* a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
	formal

	* a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
	value

	* a-textio.adb (Write): Remove an unnecessary IN OUT mode from

	* a-textio.ads: Reorder the standard input/output/error declarations
	for consistency.

	* g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call

	* par-ch2.adb: Recognize RM specially in errout
	Change 'R'M to RM in all error messages

	* scng.adb: Recognize RM specially in errout

	* sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
	N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.

	* s-direio.adb: Add missing routine header box.

	* sem_attr.ads: Add ??? comments

	* sem_eval.adb: Recognize RM specially in errout
	Change 'R'M to RM in all error messages

	* sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes

	* s-tasinf.ads: Fix minor comment typo.

	* a-cihama.adb: Minor comment addition

	* a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
	formal

	* s-tasinf-tru64.ads: Fix minor comment typo.

	* itypes.ads: Comment update.

	* ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
	anymore.

	* argv.c: Added protection against null gnat_argv and gnat_envp.

	* bcheck.adb (Check_Consistency): Use correct markup character ({) in
	warning message when Tolerate_Consistency_Errors is True.

	* cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
	Any_Id, as this subprogram is only applicable to *type* entities (it
	sets RM_Size). Instead initialize just Esize and Alignment.

From-SVN: r127440
2007-08-14 10:45:25 +02:00
Thomas Quinot
9410151a22 binde.adb (Elab_All_Links): Remove unnecessary call to Generic_Separately_Compiled (if...
2007-08-14  Thomas Quinot  <quinot@adacore.com>
	    Vincent Celier  <celier@adacore.com>

	* binde.adb (Elab_All_Links): Remove unnecessary call to
	Generic_Separately_Compiled (if a unit satisfies this predicate, there
	won't be an associated Afile).
	(Elab_All_Links): Fail if a referenced unit cannot be found

	* bindgen.adb: 
	Fix comments in bindgen regarding consistency checks done in Bcheck:
	the checks are made across units within a partition, not across several
	partitions.
	Fix generation of C binder file for VxWorks.

	* lib.adb (Generic_Separately_Compiled): Rename to
	Generic_May_Lack_ALI, more descriptive of the current use of the
	predicate, and update documentation.

	* lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
	reorganization and documentation update for the case of predefined
	library generics (for which we do not reference an Afile).

From-SVN: r127439
2007-08-14 10:45:05 +02:00
Javier Miranda
5e1527bd59 a-tags.ads, a-tags.adb (Displace): Associate a message with the raised CE exception.
2007-08-14  Javier Miranda  <miranda@adacore.com>

	* a-tags.ads, 
	a-tags.adb (Displace): Associate a message with the raised CE
	exception.
	(To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
	To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
	To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
	spec.
	(Default_Prim_Op_Count): Removed.
	(IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
	Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
	Remove pragma Inline_Always.

	* rtsfind.ads (Default_Prim_Op_Count): Removed
	(Max_Predef_Prims): New entity
	(RE_Expanded_Name): Removed
	(RE_HT_Link): Removed
	(RE_Iface_Tag): Remmoved
	(RE_Ifaces_Table): Removed
	(RE_Interfaces_Array): Removed
	(RE_Interface_Data_Element): Removed
	(RE_Nb_Ifaces): Removed
	(RE_RC_Offset): Removed
	(RE_Static_Offset_To_Top): Removed

	* exp_atag.ads (Build_Inherit_Prims): Addition of a new formal.
	(Build_Inherit_Predefined_Prims): Replace occurrences of Default_
	Prim_Op_Count by Max_Predef_Prims.

From-SVN: r127438
2007-08-14 10:44:53 +02:00
Jose Ruiz
fdcf961c8e adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept dir/file...
2007-08-14  Jose Ruiz  <ruiz@adacore.com>

	* adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
	dir/file, device:/dir/file, and device:drive_letter:/dir/file as
	representing absolute path names.
	__gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.

	* cstreams.c (__gnat_full_name for VxWorks): Use
	__gnat_is_absolute_path to detect whether we need to add the current
	directory to normalize the path.

From-SVN: r127437
2007-08-14 10:44:42 +02:00
Ed Schonberg
50b8a7b807 sem_ch10.adb: Create a limited view of an incomplete type...
2007-08-14  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch10.adb: Create a limited view of an incomplete type, to make
	treatment of limited views uniform for all visible declarations in a
	limited_withed package.
	Set flag indicating that a subprogram body for a child unit has a
	generated spec.
	(Analyze_Compilation_Unit): If unit is a subprogram body that has no
	separate declaration, remove the unit name from visibility after
	compilation, so that environment is clean for subsequent compilations.
	(Install_Limited_Context_Clauses): Do not install a
	limited_private_with_clause unless the current unit is a body or a
	private child unit.
	(Analyze_Subunit, Install_Parents): Treat generic and non-generic units
	in the same fashion.
	(Install_Limited_Withed_Unit): Do not install a limited with clause if
	it applies to the declaration of the current package body.
	(Remove_Private_With_Clauses): If there is a regular with_clause for
	the unit, delete Private_With_Clause from context, to prevent improper
	hiding when processing subsequent nested packages and instantiations.

From-SVN: r127436
2007-08-14 10:44:31 +02:00
Olivier Hainque
febb581c99 s-taprop-linux.adb (Get_Stack_Attributes): New subprogram.
2007-08-14  Olivier Hainque  <hainque@adacore.com>

	* s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
	stack size and initial stack pointer value for a given task.
	(Enter_Task): Get the stack attributes of the task we are entering and
	let the stack checking engine know about them.

	* s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
	Let the stack-checking engine know about the initial sp value and stack
	size associated with the current task.
	(Set_Stack_Info): If a stack base has been notified for the current
	task, honor it. Fallback to the previous less accurate method otherwise.

	* s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.

From-SVN: r127435
2007-08-14 10:44:14 +02:00
Pascal Obry
a2264f2d54 s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
2007-08-14  Pascal Obry  <obry@adacore.com>

	* s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
	(SYSTEM_INFO): New record.
	(SetThreadIdealProcessor): New imported routine needed for supporting
	task_info pragma on Windows.

	* s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
	info can be applied to the current host.
	(Create_Task): Set the ideal processor if information is present.

	* s-tasinf-mingw.adb, s-tasinf-mingw.ads,
	a-exetim-mingw.adb, a-exetim-mingw.ads: New files.

From-SVN: r127434
2007-08-14 10:44:02 +02:00
Olivier Hainque
43316a012f system-solaris-x86.ads (ZCX_By_Default): Switch to True.
2007-08-14  Olivier Hainque  <hainque@adacore.com>

	* system-solaris-x86.ads (ZCX_By_Default): Switch to True.
	(GCC_ZCX_Support): Switch to True.
	
	* s-intman-solaris.adb (Notify_Exception): Call
	Adjust_Context_For_Raise before raising, as expected for signal
	handlers in general.
	
	* s-intman-posix.adb (Notify_Exception): Remove declaration of
	Adjust_Context_For_Raise, moved to the spec of this unit to be visible
	to other implementation bodies.
	
	* s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
	be visible by multiple implementation bodies.
	
	* init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
	only for conditions coming from hardware.
	[alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
	adjustments to signal context prior to exception raise from signal
	handler.
	(__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
	mode.
	Solaris section: (__gnat_adjust_context_for_raise): New function.
	Implementation of the machine context adjustments to perform prior to
	raise from a signal handler. Version for both sparc and x86.
	(HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
	(__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
	prior to raising as expected for any handler, before possible nested
	faults to make sure all the contexts in a chain have been adjusted by
	the time we propagate.

From-SVN: r127433
2007-08-14 10:43:46 +02:00
Vincent Celier
2cd44f5a44 clean.adb, [...] (Create_Sym_Links): New procedure.
2007-08-14  Vincent Celier  <celier@adacore.com>

	* clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb, 
	gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
	mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb, 
	mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb, 
	mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, 
	mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
	mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
	procedure.
	(Major_Id_Name): New function.
	mlib-tgt.ads/mlib.tgt.adb:
	(Library_Major_Minor_Id_Supported): New function, default returns True
	Most mlib-tgt-*.adb that support shared libraries and symbolic links:
	(Build_Dynamic_Library): Add support for major/minor ids for shared libs
	Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
	Implementation of Library_Major_Minor_Id_Supported returns False
	clean.adb:
	(Clean_Library_Directory): If major/minor ids are supported, clean all
	library files.
	Major update of the Project Manager and of the project aware tools,
	including gprmake, so that the same sources in the GNAT repository
	can be used by gprbuild.

From-SVN: r127432
2007-08-14 10:43:34 +02:00
Jerome Guitton
c9b9ec14ec s-taprop-lynxos.adb, [...] (Continue_Task, [...]): New functions; dummy implementations.
2007-08-14  Jerome Guitton  <guitton@adacore.com>

	* s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb, 
	s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb, 
	s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
	New functions; dummy implementations.

	* s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
	functions, used to implement the multi-tasks mode routines on VxWorks.

	* s-osinte-vxworks.adb (Task_Cont, Task_Stop): New functions, thin
	binding to the VxWorks routines which have changed between VxWorks 5
	and 6.
	(Int_Lock, Int_Unlock): New function, thin binding to kernel routines
	which are not callable from a RTP.

	* s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
	implemented for the multi-tasks mode on VxWorks 5 and 6.

	* s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.

	* s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
	functions.

From-SVN: r127431
2007-08-14 10:42:09 +02:00
Ed Schonberg
bd28782c2f exp_ch5.adb (Expand_Assign_Array): If source or target of assignment is a variable that renames a slice...
2007-08-14  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
	is a variable that renames a slice, use the variable itself in the
	expannsion when the renamed expression itself may be modified between
	the declaration of the renaming and the array assignment.

From-SVN: r127430
2007-08-14 10:41:57 +02:00