Commit Graph

71853 Commits

Author SHA1 Message Date
Thomas Quinot
6ce0c3f5ed exp_dist.adb (Append_Array_Traversal): Modify constrained case to generate a set of nested array aggregates instead of...
2005-11-14  Thomas Quinot  <quinot@adacore.com>

	* exp_dist.adb (Append_Array_Traversal): Modify constrained case to
	generate a set of nested array aggregates instead of a single flat
	aggregate for multi-dimensional arrays.

From-SVN: r106973
2005-11-15 14:57:46 +01:00
Cyrille Comar
ed789fe9b0 exp_ch5.adb (Expand_N_Assignment_Statement, [...]): For an assignment of a value of a tagged type that has been rewritten to a...
2005-11-14  Cyrille Comar  <comar@adacore.com>
	    Thomas Quinot  <quinot@adacore.com>

	* exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
	assignment of a value of a tagged type that has been rewritten to a
	block statement, it is known by construction that no checks are
	necessary for the statements within the block: analyze it with checks
	suppressed.
	(Expand_N_If_Statement): When killing a dead then-branch in an
	if-statement that has elsif_parts, recompute the Current_Value node
	for any entity whose value is known from the condition of the first
	elsif_part.
	(Expand_N_Return_Statement): When returning a mutable record, convert
	the return value into its actual subtype in order to help the backend
	to return the actual size instead of the maximum. This is another
	aftermath of not returning mutable records on the sec-stack anymore.

	* sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
	handling of error msg for suspicious reverse range iteration.
	(Check_Possible_Current_Value_Condition): Move declaration from body to
	spec, to allow this subprogram to be called from exp_ch5.

From-SVN: r106972
2005-11-15 14:57:37 +01:00
Javier Miranda
5dcc05e6bc sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
2005-11-14  Javier Miranda  <miranda@adacore.com>
	    Robert Dewar  <dewar@adacore.com>
	    Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
	(Check_Dispatching_Operation): Protect the frontend againts
	previously detected errors.

	* Makefile.rtl: Add new instantiations of system.fat_gen

	* s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads: 
	Change name of instantiated package for better consistency
	with newly added system.fat_gen instantiations.

	* s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
	s-fvagfl.ads: New files.

From-SVN: r106971
2005-11-15 14:57:25 +01:00
Robert Dewar
65f01153ab sem_attr.adb: Implement Machine_Rounding attribute
2005-11-14  Robert Dewar  <dewar@adacore.com>
	    Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_attr.adb: Implement Machine_Rounding attribute
	(Analyze_Access_Attribute): The access attribute may appear within an
	aggregate that has been expanded into a loop.
	(Check_Task_Prefix): Add semantic check for attribute 'Callable and
	'Terminated whenever the prefix is of a task interface class-wide type.
	(Analyze_Attribute): Add semantic check for attribute 'Identity whenever
	the prefix is of a task interface class-wide type.

	* s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
	to avoid warnings.

	* s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
	Remove pragma Inline for [Unaligned_]Valid.
	Add comments that Valid routines do not work for Vax_Float

	* exp_attr.adb: Implement Machine_Rounding attribute

	* snames.h: Add entry for Machine_Rounding attribute

From-SVN: r106970
2005-11-15 14:56:51 +01:00
Ed Schonberg
7b9d0d6990 exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity for task component, in the case of a limited aggregate.
2005-11-14  Ed Schonberg  <schonberg@adacore.com>
	    Cyrille Comar  <comar@adacore.com>

	* exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
	for task component, in the case of a limited aggregate. The enclosed
	object declaration will create it earlier. Otherwise, in the case of a
	nested aggregate, the object may appear in the wrong scope.
	(Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
	(Gen_Assign): If the component being assigned is an array type and the
	expression is itself an aggregate, wrap the assignment in a block to
	force finalization actions on the temporary created for each row of the
	enclosing object.
	(Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
	structures are initialized after all discriminants are set so that
	they can be accessed even when their offset is dynamic.

From-SVN: r106969
2005-11-15 14:56:39 +01:00
Robert Dewar
bde33286bd sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
2005-11-14  Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
	(Check_Elab_Call): A call within a protected body is never an
	elaboration call, and does not require checking.
	(Same_Elaboration_Scope): Take into account protected types for both
	entities.
	(Activate_Elaborate_All_Desirable): New procedure

	* ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
	desirable

	* binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
	(Elab_Error_Msg): Use -da to include internal unit links, not -de.

	* lib-writ.ads, lib-writ.adb: 
	Implement new AD/ED for Elaborate_All/Elaborate desirable
	Use new Elaborate_All_Desirable flag in N_With_Clause node

	* sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
	N_Free_Statement nodes.
	Define new class N_Subprogram_Instantiation
	Add Elaborate_Desirable flag to N_With_Clause node
	Add N_Delay_Statement (covering two kinds of delay)

	* debug.adb: Introduce d.f flag for compiler
	Add -da switch for binder

From-SVN: r106968
2005-11-15 14:56:27 +01:00
Vincent Celier
104e4daaa5 clean.adb (Check_Project): Look for Ada code in extending project, even if Ada is not specified as a language.
2005-11-14  Vincent Celier  <celier@adacore.com>

	* clean.adb (Check_Project): Look for Ada code in extending project,
	even if Ada is not specified as a language.
	Use new function DLL_Prefix for DLL_Name
	(Clean_Interface_Copy_Directory): New procedure
	(Clean_Library_Directory): New procedure
	(Clean_Directory): Remove procedure, no longer used
	(Clean_Project): Do not delete any file in an externally built project

	* prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
	directory of an extending project, even when there are no Ada source
	present.
	(Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
	(Set_Ada_Paths.Add.Recursive_Add): Ditto

	* mlib-prj.adb (Check_Library): For all library projects, get the
	library file timestamp.
	(Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
	(Build_Library): Use new function DLL_Prefix for the DLL_Name
	(Clean): Remove procedure, no longer used
	(Ultimate_Extension_Of): New function
	(Build_Library): When cleaning the library directory, only remove an
	existing library file and any ALI file of a source of the project.
	When cleaning the interface copy directory, remove any source that
	could be a source of the project.

	* prj.ads, prj.adb (Project_Empty): Add values of new components
	Library_TS and All_Imported_Projects.
	(Project_Empty): Add values for new components of Project_Data:
	Library_ALI_Dir and Display_Library_ALI_Dir

	* prj-attr.adb: New project level attribute name Library_ALI_Dir

	* prj-nmsc.adb (Check_Library_Attributes): Take into account new
	attribute Library_ALI_Dir.
	(Check_Library_Attributes): The library directory cannot be the same as
	any source directory of the project tree.
	(Check_Stand_Alone_Library): The interface copy directory cannot be
	the same as any source directory of the project tree.

	* mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
	all temporary files.

From-SVN: r106967
2005-11-15 14:56:14 +01:00
Emmanuel Briot
f9f7e1022c xref_lib.adb (Parse_Identifier_Info): It is possible for an entity line in the ALI file to include both an...
2005-11-14  Emmanuel Briot  <briot@adacore.com>

	* xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
	line in the ALI file to include both an instantiation reference, and a
	returned value.

From-SVN: r106966
2005-11-15 14:56:03 +01:00
Hristian Kirtchev
f4d379b8df rtsfind.ads, [...]: Complete support for Ada 2005 interfaces.
2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
	    Javier Miranda  <miranda@adacore.com>

	* rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
	exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
	exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
	einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.

	* a-tags.ads, a-tags.adb: Major rewrite and additions to implement
	properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
	assertions).

	* exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
	subprogram that generates the external name associated with a
	secondary dispatch table.
	(Get_Secondary_DT_External_Name): New subprogram that generates the
	external name associated with a secondary dispatch table.

From-SVN: r106965
2005-11-15 14:54:36 +01:00
Matthew Gingell
748d8778ed tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on ia64 HP-UX.
2005-11-14  Matthew Gingell  <gingell@adacore.com>
	    Olivier Hainque  <hainque@adacore.com>

	* tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
	ia64 HP-UX.

	* tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
	tracebacks on ia64 HP-UX and provide explanatory comment.
	Enable backtraces on ia64 GNU/Linux.
	(x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
	base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.

From-SVN: r106964
2005-11-15 14:54:25 +01:00
Olivier Hainque
e1ac6e5b21 cuintp.c (UI_To_gnu): Use a proper type for intermediate computations to ensure bias adjustments take...
2005-11-14  Olivier Hainque  <hainque@adacore.com>

	* cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
	to ensure bias adjustments take place when need be and to prevent
	occurrences of intermediate overflows.

From-SVN: r106963
2005-11-15 14:54:14 +01:00
Matthew Heaney
2368f04ec1 a-crbtgo.ads, [...]: Compiles against the spec for ordered maps described in sections A.18.6 of the...
2005-11-14  Matthew Heaney  <heaney@adacore.com>

	* a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads, 
	a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb, 
	a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads, 
	a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb, 
	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-ciorma.adb, a-coorma.adb: 
	Compiles against the spec for ordered maps described in sections
	A.18.6 of the most recent (August 2005) AI-302 draft.

From-SVN: r106962
2005-11-15 14:54:02 +01:00
Thomas Quinot
5e61ef090a decl.c: Factor common code to build a storage type for an unconstrained object from a...
2005-11-14  Thomas Quinot  <quinot@adacore.com>
	    Olivier Hainque  <hainque@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c:
	Factor common code to build a storage type for an unconstrained object
	from a fat or thin pointer type and a constrained object type.
	(annotate_value): Handle BIT_AND_EXPR.
	(annotate_rep): Don't restrict the back annotation of inherited
	components to the type_annotate_only case.
	(gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
	we are not defining the type.
	<E_Record_Type>: Likewise.
	(gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
	to get advantage of the new maybe_stabilize_reference interface, to
	ensure that what we reference is indeed stabilized instead of relying
	on assumptions on what the stabilizer does.
	(gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
	type imported through a limited_with clause, use its non-limited view.
	(Has_Stdcall_Convention): New macro, to centralize the Windows vs others
	differentiation.
	(gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
	of #if sections + explicit comparisons of convention identifiers.
	(gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
	before early-returning for certain types when code generation is
	disabled.
	(gnat_to_gnu_entity) <object>: Adjust comment attached to the
	nullification of gnu_expr we do for objects with address clause and
	that we are not defining.
	(elaborate_expression_1): Do not create constants when creating
	variables needed by the debug info: the dwarf2 writer considers that
	CONST_DECLs is used only to represent enumeration constants, and emits
	nothing for them.
	(gnat_to_gnu_entity) <object>: When turning a non-definition of an
	object with an address clause into an indirect reference, drop the
	initializing expression.
	Include "expr.h".
	(STACK_CHECK_BUILTIN): Delete.
	(STACK_CHECK_PROBE_INTERVAL): Likewise.
	(STACK_CHECK_MAX_FRAME_SIZE): Likewise.
	(STACK_CHECK_MAX_VAR_SIZE): Likewise.
	(gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
	corresponding to the renamed object as ignored for debugging purposes.

	* trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
	related): For a prefix that is a dereference of a fat or thin pointer,
	if there is an actual subtype provided by the front-end, use that
	subtype to build an actual type with bounds template.
	(tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
	is provided by the front-end, use that subtype to compute the size of
	the deallocated object.
	(gnat_to_gnu): When adding a statement into an elaboration procedure,
	check for a potential violation of a No_Elaboration_Code restriction.
	(maybe_stabilize_reference): New function, like gnat_stabilize_reference
	with extra arguments to control whether to recurse through non-values
	and to let the caller know if the stabilization has succeeded.
	(gnat_stabilize_reference): Now a simple wrapper around
	maybe_stabilize, for common uses without restriction on lvalues and
	without need to check for the success indication.
	(gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
	pass false instead of 0 as the FORCE argument which is a bool.
	(Identifier_to_gnu): Remove checks ensuring that an renamed object
	attached to a renaming pointer has been properly stabilized, as no such
	object is attached otherwise.
	(call_to_gnu): Invoke create_var_decl to create the temporary when the
	function uses the "target pointer" return mechanism.
	Reinstate conversion of the actual to the type of the formal
	parameter before any other specific treatment based on the passing
	mechanism. This turns out to be necessary in order for PLACEHOLDER
	substitution to work properly when the latter type is unconstrained.

	* gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
	common pattern.
	(maybe_stabilize_reference): New function, like gnat_stabilize_reference
	with extra arguments to control whether to recurse through non-values
	and to let the caller know if the stabilization has succeeded.

	* utils2.c (gnat_build_constructor): Only sort the fields for possible
	static output of record constructor if all the components are constant.
	(gnat_build_constructor): For a record type, sort the list of field
	initializers in increasing bit position order.
	Factor common code to build a storage type for an unconstrained object
	from a fat or thin pointer type and a constrained object type.
	(build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
	types variants, and process special cases of VIEW_CONVERT expressions
	as their NOP_EXPR counterpart to ensure we get to the
	CORRESPONDING_VARs associated with CONST_DECls.
	(build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
	on the right-hand side.

	* utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
	a common pattern.
	(convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
	are converting back to its original type.
	(convert) <JM input>: Fallthrough regular conversion code instead of
	extracting the object if converting to a type variant.
	(create_var_decl): When a variable has an initializer requiring code
	generation and we are at the top level, check for a potential violation
	of a No_Elaboration_Code restriction.
	(create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
	SIZE and SIZE_UNIT which we need for later back-annotations.
	* utils.c: (convert) <STRING_CST>: Remove obsolete code.
	<VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
	is an unchecked union.
	(pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
	(convert) <VIEW_CONVERT_EXPR>: When the types have the same
	main variant, just replace the VIEW_CONVERT_EXPR.
	<UNION_TYPE>: Revert 2005-03-02 change.

	* repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.

	* repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.

From-SVN: r106961
2005-11-15 14:53:22 +01:00
Jose Ruiz
fda5d6d4ff s-tassta.adb (Create_Task): Move the code in charge of resetting the deferral level...
2005-11-14  Jose Ruiz  <ruiz@adacore.com>

	* s-tassta.adb (Create_Task): Move the code in charge of resetting the
	deferral level, when abort is not allowed, to a later stage (the
	Task_Wrapper).
	(Task_Wrapper): If Abort is not allowed, reset the deferral level since
	it will not get changed by the generated code. It was previously done
	in Create_Task.

From-SVN: r106960
2005-11-15 14:53:05 +01:00
Arnaud Charlet
982f26e474 a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
* a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
	(builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
	related code to a-exexpr.adb
	(Save_Occurrence_And_Private): Move GCC EH related code to
	a-exexpr-gcc.adb
	(Raise_Current_Excep): Add new variable Id with pragma
        volatile, to ensure that the variable lives on stack.

	* a-exexpr-gcc.adb, raise-gcc.c: New file.

	* a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
	from a-except.adb.
	Move GCC EH related code to a-exexpr-gcc.adb

	* Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
	64-bit Solaris
	Split the Linux version of g-soccon into separate variants for 32 and 64
	bit platforms.
	(gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
	vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
	install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
	of host variable $(RANLIB_FLAGS).
	(alpha64-dec-*vms*): Fix translations for 64 bit compiler.
	Code clean up: remove unused/obsolete targets.
	(EH_MECHANISM): New variable introduced to differenciate between the
	two EH mechanisms statically.
	(gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
	(LIBGNAT_OBJS): Add raise-gcc.o
	(LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
	s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
	supports VxWorks 6 RTPs.
	(EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
	i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.

	* raise.c: Move all GCC EH-related routines to raise-gcc.c

From-SVN: r106959
2005-11-15 14:52:55 +01:00
Pascal Obry
c01b085ff7 gnatdll.adb (Parse_Command_Line): Remove redundant use of GNAT.Command_Line.
2005-11-14  Pascal Obry  <obry@adacore.com>
	    Vincent Celier  <celier@adacore.com>

	* gnatdll.adb (Parse_Command_Line): Remove redundant use of
	GNAT.Command_Line.

	* memroot.adb: Remove redundant with/use clause on
	System.Storage_Elements.

From-SVN: r106958
2005-11-15 14:52:43 +01:00
Arnaud Charlet
514c9ddc9c adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
* adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
	(Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
	(convert_address): Update comments and list of platforms using this.

	* s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
	no longer used.

From-SVN: r106957
2005-11-15 14:52:31 +01:00
Jose Ruiz
a7e4a88171 s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before raising the exception so the memory used is freed.
2005-11-14  Jose Ruiz  <ruiz@adacore.com>

	* s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
	raising the exception so the memory used is freed.

From-SVN: r106956
2005-11-15 14:52:20 +01:00
Arnaud Charlet
ec09262ef1 s-traces-default.adb, [...]: Fix compilation errors.
2005-11-14  Arnaud Charlet  <charlet@adacore.com>

	* s-traces-default.adb, s-trafor-default.ads,
	s-tratas-default.adb: Fix compilation errors.

From-SVN: r106955
2005-11-15 14:52:10 +01:00
Doug Rupp
2b6659ab10 system-vms.ads, [...]: ADA$GNAT: New exported object in private part.
2005-11-14  Doug Rupp  <rupp@adacore.com>

	* system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
	private part.

From-SVN: r106954
2005-11-15 14:52:00 +01:00
Vincent Celier
6c6db94e93 mlib-tgt-tru64.adb, [...] (DLL_Prefix): New function
2005-11-14  Vincent Celier  <celier@adacore.com>

	* mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
	mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
	mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
	mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
	mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
	mlib-tgt-lynxos.adb (DLL_Prefix): New function

From-SVN: r106953
2005-11-15 14:51:50 +01:00
Matthew Gingell
9ea6535410 system-lynxos-ppc.ads, [...]: Increase default priority on Lynx from 15 to 17...
2005-11-14  Matthew Gingell  <gingell@adacore.com>

	* system-lynxos-ppc.ads, system-lynxos-x86.ads: 
	Increase default priority on Lynx from 15 to 17, and meet the Ada
	requirement that Default_Priority be ((Priority'First +
	Priority'Last) / 2) by increasing the range of Interrupt_Priority.

From-SVN: r106952
2005-11-15 14:51:38 +01:00
Robert Dewar
0d268911a4 exp_vfpt.adb: Handle /= case
2005-11-14  Robert Dewar  <dewar@adacore.com>

	* exp_vfpt.adb: Handle /= case
	(Expand_Vax_Conversion): Properly recognize Conversion_OK flag
	so that we do not get duplicate scaling for fixed point conversions.

	* s-vaflop.ads, s-vaflop.adb: (Ne_F): New function

From-SVN: r106951
2005-11-15 14:51:27 +01:00
Robert Dewar
f02b8bb877 re PR ada/18434 (Ada: cannot build gnattools on Tru64 UNIX V5.1B)
2005-11-14  Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	PR ada/18434

	* types.ads: Include All_Checks in Suppress_Array

	* checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
	not(a=b), since we no longer do this rewriting, and hence it is not
	needed.
	(Elaboration_Checks_Suppressed): Add special casing to
	deal with different cases of static and dynamic elaboration checks (all
	checks does not count in the first case, but does in the second).
	(Expr_Known_Valid): Do not assume that the result of any arbitrary
	function call is valid, since this is not the case.
	(Ensure_Valid): Do not apply validity check to a real literal
	in a universal or fixed context

	* exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
	elementary types using the operator in standard. It is cleaner not to
	modify the programmers intent, especially in the case of floating-point.
	(Rewrite_Comparison): Fix handling of /= (this was always wrong, but
	it did not matter because we always rewrote a/=b to not(a=b).
	(Expand_Allocator_Expression): For an allocator expression whose nominal
	subtype is an unconstrained packed type, convert the expression to its
	actual constrained subtype.
	Implement warning for <= or >= where < or > not possible
	Fix to Vax_Float tests (too early in many routines, causing premature
	Vax_Float expansions.

	* sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
	to be used with packages and generic packages as well as with
	subprograms.
	(Suppress): Set All_Checks, but not Elaboration_Check, for case
	of pragma Suppress (All_Checks)
	(Analyze_Pragma, case Warnings): Implement first argument allowed to be
	a string literal for precise control over warnings.
	Avoid raise of pragma in case of unrecognized pragma and just return
	instead.

	* sem_prag.ads: Minor reformatting

	* switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
	with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
	Switch. Do not handle any exception.
	Include -gnatwx as part of -gnatg (warn on redundant parens)
	Allow optional = after -gnatm
	(Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
	longer sets Elaboration_Checks.
	Code to set warning mode moved to Sem_Warn
	so that it can be shared by pragma processing.

	* s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
	statement.

	* s-taprop-solaris.adb: 
	Change some <= to =, to avoid new warning

	* a-exexda.adb, prj-proc.adb: 
	Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
	Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)

From-SVN: r106950
2005-11-15 14:51:09 +01:00
Thomas Quinot
3e1fd98f3d g-soccon.ads: Minor reformatting.
2005-11-14  Thomas Quinot  <quinot@adacore.com>

	* g-soccon.ads: Minor reformatting. Update comments.

	* gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
	gain visibility on the declaration of struct timeval.

	* g-soccon-freebsd.ads,
	g-soccon-darwin.ads,
	g-soccon-tru64.ads,
	g-soccon-aix.ads,
	g-soccon-irix.ads,
	g-soccon-hpux.ads,
	g-soccon-solaris.ads,
	g-soccon-vms.ads,
	g-soccon-mingw.ads,
	g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.

	* g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
	g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
	g-soccon-linux-x86.ads: New files.

	* g-socthi-mingw.adb: 
	(Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants

	* g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
	(time_t, suseconds_t): New types constructed to match the tv_sec
	and tv_usec fields of C struct timeval.
	(Timeval): Construct structure in terms of the new types.
	(Host_Errno): New function (imported from socket.c), returns last hosts
	database error.

	* g-socthi-vxworks.adb:  Add error handling circuitry.

	* g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
	components of struct timeval.
	(Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
	(Check_Selector): In error conditions, clear internal socket sets to
	avoid a memory leak.
	(Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
	Send_Timeout, Receive_Timeout.

	* g-socthi.ads (time_t, suseconds_t): New types constructed to match
	the tv_sec and tv_usec fields of C struct timeval.
	(Timeval): Construct structure in terms of the new types.
	(Host_Errno): New function (imported from socket.c), returns last hosts
	database error.

	* socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
	hosts database last error code.

	* gen-soccon.c: Complete value expansion should not be performed on
	TARGET, as it has the form of a math expression, and some components
	may be platform-defined macros.
	For VxWorks, generate the OK and ERROR values.
	New constants giving the sizes of the components of C struct timeval.

From-SVN: r106949
2005-11-15 14:50:37 +01:00
Jan Hubicka
b4f32d07aa invoke.texi (large-unit-insns): Document.
* invoke.texi (large-unit-insns): Document.
	* ipa-inline.c (cgraph_decide_inlining): Use large-unit-insns param.
	* params.def (large-unit-insns): New param.
	* gcc.dg/winline-5.c: Add large-unit-insns limit.

From-SVN: r106948
2005-11-15 12:27:33 +00:00
Hans-Peter Nilsson
4a60d778fa re PR target/24869 (testsuite failure: gfortran.dg/func_derived_1.f90 -O3 unroll-loops)
PR target/24869
	* config/cris/cris.md ("*mov_sidesisf_mem"): Do not match
	special register for operand 3.  Reindent constraints to align
	them vertically.

From-SVN: r106946
2005-11-15 10:52:06 +00:00
David Edelsohn
9719f3b792 invoke.texi (RS/6000 and PowerPC Options): Add -mmfcrf, -mpopcntb, -mfprnd.
* doc/invoke.texi (RS/6000 and PowerPC Options): Add -mmfcrf,
        -mpopcntb, -mfprnd. Add -mcpu=power5+.
        * configure.ac: Add test for FP rounding instructions.
        * configure: Regenerate.
        * config.in: Regenerate.
        * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
        _ARCH_PPCSQ, _ARCH_PPCGR, _ARCH_PWR4, _ARCH_PWR5, _ARCH_PWR5X if
        features enabled.
        * config/rs6000/rs6000.opt (mfprnd): New.
        * config/rs6000/rs6000.c (processor_target_table): Add power5+.
        (POWERPC_MASKS): Add MASK_POPCNTB and MASK_FPRND.
        * config/rs6000/aix52.h (ASM_CPU_SPEC): Add -mpower5+.
        * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mpower5+.
        (TARGET_FPRND): New.
        * config/rs6000/rs6000.md (UNSPEC_FRIM, UNSPEC_FRIN, UNSPEC_FRIP,
        UNSPEC_FRIZ): New.
        (btrunc<mode>2): New.
        (ceil<mode>2): New.
        (floor<mode>2): New.
        (round<mode>2): New.

From-SVN: r106938
2005-11-15 00:00:40 -05:00
Geoffrey Keating
f47bddec0c acinclude.m4 (GLIBCXX_CHECK_LINKER_FEATURES): Don't check for shared libgcc for darwin exports.
* acinclude.m4 (GLIBCXX_CHECK_LINKER_FEATURES): Don't check for
	shared libgcc for darwin exports.
	* configure: Regenerate.

From-SVN: r106936
2005-11-15 04:56:34 +00:00
Geoffrey Keating
563092615a gcc.c (version_compare_spec_function): Use fatal() rather than abort().
* gcc.c (version_compare_spec_function): Use fatal() rather than
	abort().

	* config/rs6000/darwin.h (DARWIN_CRT2_SPEC): New.
	(SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2).
	* config/i386/darwin.h (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2)
	as empty.
	* config/darwin.h (STARTFILE_SPEC): Use %(darwin_crt2) to possibly
	link in crt2.o.
	
	* config/darwin.h (REAL_LIBGCC_SPEC): Link in shared libgcc depending
	on -mmacosx-version-min setting.

From-SVN: r106935
2005-11-15 04:55:12 +00:00
David Edelsohn
9193863e4e * g++.dg/eh/simd-2.C: XFAIL on AIX and SPE.
From-SVN: r106933
2005-11-14 23:42:30 -05:00
Diego Novillo
8c5285e1cb re PR tree-optimization/24840 (ICE process_assert_insertions_for, at tree-vrp.c:2807)
PR 24840
	* tree-vrp.c (infer_value_range): Return false if STMT is a
	block terminator and its basic block has no successors.

testsuite/

	PR 24840
	* gcc.dg/tree-ssa/pr24840.c: New test.

From-SVN: r106930
2005-11-14 21:59:03 -05:00
Mike Stump
1f4c2c57da i386.c (override_options): -masm=intel isn't supported on darwin.
* config/i386/i386.c (override_options): -masm=intel isn't
	supported on darwin.
	* doc/invoke.texi (i386 and x86-64 Options): Likewise.

From-SVN: r106927
2005-11-15 01:44:36 +00:00
Joseph Myers
3bea02d1f4 crtstuff.c: Undefine gid_t, pid_t, rlim_t, ssize_t, uid_t and vfork after including auto-host.h.
* crtstuff.c: Undefine gid_t, pid_t, rlim_t, ssize_t, uid_t and
	vfork after including auto-host.h.

From-SVN: r106924
2005-11-15 01:21:29 +00:00
Janis Johnson
f2025db263 re PR testsuite/24841 (dg-require compilation-test trigged on test with additional-sources barfs)
PR testsuite/24841
	* gcc.dg/attr-weakref-1.c: Rearrange test directives.

From-SVN: r106923
2005-11-15 01:18:45 +00:00
Alan Modra
46de9b3caf re PR rtl-optimization/22002 (internal consistency failure with -funroll-loops)
PR rtl-optimization/22002
	* combine.c (distribute_notes): Detect cases where a reg dies
	two or more times in a bb, including on the insn we are combining,
	and place the death note on the correct range.

From-SVN: r106921
2005-11-15 11:29:21 +10:30
Dale Johannesen
12431170a7 20051113-1.c: New.
2005-11-14  Dale Johannesen  <dalej@apple.com>

        * gcc.c-torture/execute/20051113-1.c:  New.

From-SVN: r106920
2005-11-15 00:47:17 +00:00
Dale Johannesen
69498c64a3 expmed.c (store_bit_field): Add offset unconditionally for memory targets.
2005-11-14  Dale Johannesen  <dalej@apple.com>

        * expmed.c (store_bit_field):  Add offset unconditionally for
        memory targets.
        (extract_bit_field):  Don't force extzv or extv operand into
        a register if field is too big.

From-SVN: r106919
2005-11-15 00:45:55 +00:00
GCC Administrator
53acd3845f Daily bump.
From-SVN: r106914
2005-11-15 00:17:08 +00:00
Mark Mitchell
2f1b1731e6 re PR c++/24687 (ICE after error)
PR c++/24687
	* pt.c (check_explicit_specialization): Don't check for C linkage.
	(push_template_decl_real): Likewise.
	* parser.c (cp_parser_explicit_specialization): Check here.
	(cp_parser_template_declaration_after_export): And here.
	PR c++/24687
	* g++.dg/template/crash43.C: New test.

From-SVN: r106909
2005-11-15 00:15:09 +00:00
Mark Mitchell
37edf0a6c4 parser.c (cp_lexer_get_preprocessor_token): Initialize keyword field.
* parser.c (cp_lexer_get_preprocessor_token): Initialize keyword
	field.

From-SVN: r106907
2005-11-15 00:04:43 +00:00
Jason Merrill
63752e29bb re PR c++/24580 (virtual base class cause exception not to be caught)
PR c++/24580
        * method.c (locate_ctor): Skip all artificial parms, not just
        'this'.

From-SVN: r106901
2005-11-14 15:07:45 -05:00
Janne Blomqvist
8520690170 re PR libfortran/21468 (vectorizing libfortran)
2005-11-14  Janne Blomqvist  <jb@gcc.gnu.org>

        PR fortran/21468
        * Makefile.am: Add -ftree-vectorize for compiling matmul.
        * m4/matmul.m4: Add const and restrict to type declarations as
        appropriate.
        * m4/matmull.m4: Likewise.
        * Makefile.in: Regenerated.
        * generated/matmul_*.c: Likewise.

From-SVN: r106898
2005-11-14 21:48:31 +02:00
Mohan Embar
d0568f737a natVMNetworkInterfaceWin32.cc: Include java/net/VMNetworkInterface.h.
* java/net/natVMNetworkInterfaceWin32.cc: Include
	java/net/VMNetworkInterface.h.

From-SVN: r106895
2005-11-14 17:19:11 +00:00
Mohan Embar
99b8b611f5 natPlainSocketImplWin32.cc: Updated copyright.
* gnu/java/net/natPlainSocketImplWin32.cc: Updated copyright.
	(read): Handle count == 0 case.

Co-Authored-By: David Daney <ddaney@avtrex.com>

From-SVN: r106894
2005-11-14 17:15:18 +00:00
Daniel Jacobowitz
f16fe45f32 arm.c (pic_labelno): New.
* config/arm/arm.c (pic_labelno): New.
	(arm_load_pic_register): Use an UNSPEC_PIC_LABEL instead of a
	LABEL_REF.  Pass only the labelno to PIC insns.
	(arm_call_tls_get_addr, legitimize_tls_address): Likewise.
	(arm_output_addr_const_extra): Handle UNSPEC_PIC_LABEL.
	* arm.md (UNSPEC_PIC_LABEL): New constant.
	(pic_add_dot_plus_four, pic_add_dot_plus_eight)
	(tls_load_dot_plus_eight): Expect a labelno instead of a LABEL_REF.
	Use the correct label prefix.

From-SVN: r106893
2005-11-14 17:07:42 +00:00
Daniel Jacobowitz
e66e1c6806 arm.c (legitimize_tls_address): Use correct rtx for REQ_EQUIV note.
* config/arm/arm.c (legitimize_tls_address): Use correct rtx for
	REQ_EQUIV note.

From-SVN: r106892
2005-11-14 16:32:49 +00:00
Gerald Pfeifer
ba0966205a cpplib.h (struct cpp_callbacks): Annotate error with ATTRIBUTE_FPTR_PRINTF(3,0) instead of ATTRIBUTE_PRINTF(3,0).
* include/cpplib.h (struct cpp_callbacks): Annotate error with
	ATTRIBUTE_FPTR_PRINTF(3,0) instead of ATTRIBUTE_PRINTF(3,0).

Co-Authored-By: Ian Lance Taylor <ian@airs.com>

From-SVN: r106891
2005-11-14 16:28:55 +00:00
Daniel Jacobowitz
b967586450 * gcc.c-torture/unsorted/unsorted.exp: Sort tests before running them.
From-SVN: r106890
2005-11-14 16:28:48 +00:00
Mark Mitchell
e2d281617f * parser.c (eof_token): Add initializer for ambiguous_p.
From-SVN: r106889
2005-11-14 15:29:03 +00:00