1. 15 Mar, 2005 31 commits
    • gnatchop.adb (Locate_Executable): Normalize the possibly VMS style Command_Name. · 454ff542
      2005-03-08  Doug Rupp  <rupp@adacore.com>
      
      	* gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
      	Command_Name.
      
      From-SVN: r96498
      Doug Rupp committed
    • exp_tss.ads, [...] (Find_Inherited_TSS): New subprogram... · 6e40e481
      2005-03-08  Thomas Quinot  <quinot@adacore.com>
      
      	* exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
      	here from exp_attr so it can be shared between exp_attr and exp_dist.
      	(TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
      	all TSS names, not a subset thereof, and the previous name introduced
      	an unnecessarily confusion that a distinction might exist between
      	"OK" TSS names and some "not OK" TSS names.
      
      From-SVN: r96497
      Thomas Quinot committed
    • exp_smem.adb, [...]: Remove OK_For_Stream flag, not used, not needed. · 4ee27193
      2005-03-08  Robert Dewar  <dewar@adacore.com>
      
      	* exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
      	not needed.
      	Add documentation to replace the use of this flag
      	Fix kludge for Maximum_Alignment on x86 so that it does not apply to
      	the x86_64.
      
      From-SVN: r96496
      Robert Dewar committed
    • exp_intr.adb (Expand_Unc_Conversion): As a target type... · b7cdaf8d
      2005-03-08  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
      	that appears in the instantiation rather than the internal subtype
      	generated in the wrapper package, to avoid anomalies in gigi when the
      	target is derived from a private type whose full view is an access type.
      
      From-SVN: r96495
      Ed Schonberg committed
    • exp_ch7.adb (Convert_View): Use base types of underlying types when determining… · a877ccc4
      exp_ch7.adb (Convert_View): Use base types of underlying types when determining whether an unchecked...
      
      2005-03-08  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch7.adb (Convert_View): Use base types of underlying types when
      	determining whether an unchecked conversion is needed for the argument
      	of an initialization call.
      
      From-SVN: r96494
      Ed Schonberg committed
    • re PR ada/19900 (ACATS c391002 c432002 ICE categorize_ctor_elements_1) · f44fe430
      2005-03-08  Robert Dewar  <dewar@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      	    Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
      
      	PR ada/19900
      
      	* exp_pakd.adb (Create_Packed_Array_Type): Do not set
      	Must_Be_Byte_Aligned for cases where we do not need to use a
      	System.Pack_nn unit.
      
      	* exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
      	as procedures.
      	Needed now that we do some processing for IN parameters as well. This
      	may well fix some unrelated errors.
      	(Expand_Call): Handle case of unaligned objects (in particular those
      	that come from packed arrays).
      	(Expand_Inlined_Call): If the subprogram is a renaming as body, and the
      	renamed entity is an inherited operation, re-expand the call using the
      	original operation, which is the one to call.
      	Detect attempt to inline parameterless recursive subprogram.
      	(Represented_As_Scalar): Fix to work properly with private types
      	(Is_Possibly_Unaligned_Object): Major rewrite to get a much more
      	accurate estimate. Yields True in far fewer cases than before,
      	improving the quality of code that depends on this test.
      	(Remove_Side_Effects): Properly test for Expansion_Delayed and handle
      	case when it's inside an N_Qualified_Expression.
      
      	* exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
      	over both visible and private declarations to remove them from tree,
      	and mark subprograms declared in package as eliminated, to prevent
      	spurious use in subsequent compilation of generic units in the context.
      
      	* exp_util.ads: Minor cleanup in variable names
      
      	* sem_eval.ads, sem_eval.adb: Minor reformatting
      	(Compile_Time_Known_Bounds): New function
      
      From-SVN: r96493
      Robert Dewar committed
    • re PR ada/19900 (ACATS c391002 c432002 ICE categorize_ctor_elements_1) · c6823a20
      2005-03-08  Eric Botcazou  <ebotcazou@adacore.com>
      	    Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
      	    Nicolas Setton  <setton@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      
      	PR ada/19900
      	PR ada/19408
      	PR ada/19140
      	PR ada/20255
      
      	* decl.c (gnat_to_gnu_field): Reject aliased components with a
      	representation clause that prescribes a size not equal to the rounded
      	size of their types.
      	(gnat_to_gnu_entity, case E_Component): Always look at
      	Original_Record_Component if Present and not the entity.
      	(gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
      	of tagged extension types by not making field for components that are
      	inside the parent.
      	(gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
      	(gnat_to_gnu_entity) <E_Variable>: Do not convert again the
      	expression to the type of the object when the object is constant.
      	Reverse defer_debug_incomplete_list before traversing it, so that trees
      	are processed in the order at which they were added to the list. This
      	order is important when using the stabs debug format.
      	If we are deferring the output of debug information, also defer this
      	output for a function return type.
      	When adding fields to a record, prevent emitting debug information
      	for incomplete records, emit the information only when the record is
      	complete.
      	(components_to_record): New parameter defer_debug.
      	(gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
      	(gnat_to_gnu_field_decl): New function.
      	(substitution_list, annotate_rep): Call it.
      	(gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
      	(gnat_to_gnu_entity, case E_Record_Type): Likewise.
      	No longer update discriminants to not be a COMPONENT_REF.
      	(copy_alias_set): Strip padding from input type; also handle
      	unconstrained arrays properly.
      
      	* gigi.h (write_record_type_debug_info): New function.
      	Convert to use ANSI-style prototypes. Remove unused
      	declarations for emit_stack_check, elab_all_gnat and
      	set_second_error_entity.
      	(gnat_to_gnu_field_decl): New decl.
      
      	* utils.c (write_record_type_debug_info): New function.
      	(finish_record_type): Delegate generation of debug information to
      	write_record_type_debug_info.
      	(update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
      	(update_pointer_to): Fix pasto.
      	(convert) <UNION_TYPE>: Accept slight type variations when
      	converting to an unchecked union type.
      
      	* exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
      	replace the N_Freeze_Entity with a null statement.
      
      	* freeze.adb (Freeze_Expression): If the freeze nodes are generated
      	within a constrained subcomponent of an enclosing record, place the
      	freeze nodes in the scope stack entry for the enclosing record.
      	(Undelay_Type): New Subprogram.
      	(Set_Small_Size): Pass T, the type to modify; all callers changed.
      	(Freeze_Entity, Freeze_Record_Type): Change the way we handle types
      	within records; allow them to have freeze nodes if their base types
      	aren't frozen yet.
      
      	* sem_ch3.adb (Derived_Type_Declaration): New predicate
      	Comes_From_Generic, to recognize accurately that the parent type in a
      	derived type declaration can be traced back to a formal type, because
      	it is one or is derived from one, or because its completion is derived
      	from one.
      	(Constrain_Component_Type): If component comes from source and has no
      	explicit constraint, no need to constrain in in a subtype of the
      	enclosing record.
      	(Constrain_Access, Constrain_Array): Allow itypes to be delayed.
      	Minor change to propagate Is_Ada_2005 flag
      
      	* trans.c (gnat_to_gnu, case N_Aggregate): Verify that
      	Expansion_Delayed is False.
      	(assoc_to_constructor): Ignore fields that have a
      	Corresponding_Discriminant.
      	(gnat_to_gnu) <N_Return_Statement>: Restructure. If the
      	function returns "by target", dereference the target pointer using the
      	type of the actual return value.
      	<all>: Be prepared for a null gnu_result.
      	(processed_inline_subprograms): Check flag_really_no_inline
      	instead of flag_no_inline.
      	(set_second_error_entity): Remove unused function.
      	(gnat_to_gnu, case N_Selected_Component): Call
      	gnat_to_gnu_field_decl.
      	(assoc_to_constructor): Likewise.
      
      From-SVN: r96492
      Eric Botcazou committed
    • checks.adb (Get_E_First_Or_Last): When the expression being retrieved is an… · 3a8b9f38
      checks.adb (Get_E_First_Or_Last): When the expression being retrieved is an N_Raise_Constraint_Error node...
      
      2005-03-08  Thomas Quinot  <quinot@adacore.com>
      
      	* checks.adb (Get_E_First_Or_Last): When the expression being retrieved
      	is an N_Raise_Constraint_Error node, create a new copy of it without
      	going through a call to Duplicate_Subexpr.
      
      From-SVN: r96491
      Thomas Quinot committed
    • bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit · 2ca2bc8b
      2005-03-08  Doug Rupp  <rupp@adacore.com>
      	    Vincent Celier  <celier@adacore.com>
      
      	* bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
      	(Gen_Output_File_C): Likewise.
      	(Gen_Main_C): Issue #include <stdlib.h> to avoid warning
      
      From-SVN: r96490
      Doug Rupp committed
    • atree.ads, atree.adb: Add support for Elist24 field · a9d8907c
      2005-03-08  Javier Miranda  <miranda@adacore.com>
      	    Robert Dewar  <dewar@adacore.com>
      	    Thomas Quinot  <quinot@adacore.com>
      	    Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
      
      	* atree.ads, atree.adb: Add support for Elist24 field
      
      	* atree.h: Fix wrong definition of Field27
      	Add support for Elist16 field
      	Add support for Elist24 field
      
      	* einfo.ads, einfo.adb (Abstract_Interfaces,
      	Set_Abstract_Interfaces): New subprograms.
      	(Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
      	subprograms.
      	(Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
      	entities rather than a single node.
      	(Is_Interface, Set_Is_Interface): New subprogram
      	(First_Tag_Component): New syntesized attribute
      	(Next_Tag_Component): New synthesized attribute
      	(Write_Entity_Flags): Upgraded to write Is_Interface
      	(Write_Field24_Name): Upgraded to write Abstract_Interfaces
      	(Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
      	(Task_Body_Procedure): New subprogram to read this attribute.
      	(Set_Task_Body_Procedure): New subprogram to set this attribute.
      	(Has_Controlled_Component): Now applies to all entities.
      	This is only a documentation change, since it always worked to apply
      	this to other than composite types (yielding false), but now this is
      	official.
      	Update documentation on Must_Be_Byte_Aligned for new spec
      
      	* tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
      	exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
      	uses of the Access_Disp_Table attribute to reference the first dispatch
      	table associated with a tagged type. As
      	part of the implementation of abstract interface types,
      	Access_Disp_Table has been redefined to contain a list of dispatch
      	tables (rather than a single dispatch table).
      	Similarly, upgrade all the references to Tag_Component by the
      	new attribute First_Tag_Component.
      	(Find_Inherited_TSS): Moved to exp_tss.
      	Clean up test in Expand_N_Object_Declaration for cases
      	where we need to do a separate assignment of the initial value.
      	(Expand_N_Object_Declaration): If the expression in the
      	declaration of a tagged type is an aggregate, no need to generate an
      	additional tag assignment.
      	(Freeze_Type): Now a function that returns True if the N_Freeze_Entity
      	is to be deleted.
      	Bit packed array ops are only called if operands are known to be
      	aligned.
      	(Component_Equality): When returning an N_Raise_Program_Error statement,
      	ensure that its Etype is set to Empty to avoid confusing GIGI (which
      	expects that only expressions have a bona fide type).
      	(Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
      	determine the amount of data to be copied.
      
      	* par.adb (P_Interface_Type_Definition): New subprogram that parses the
      	new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
      	    INTERFACE_TYPE_DEFINITION ::=
      	      [limited | task | protected | synchronized] interface
      	        [AND interface_list]
      
      	* par-ch3.adb (P_Type_Declaration): Modified to give support to
      	interfaces.
      	(P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
      	interfaces.
      	(P_Interface_Type_Definition): New subprogram that parses the new
      	syntax rule of Ada 2005 interfaces
      	(P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
      	messages by the correct RENAMES (quotes removed).
      
      	* sem_prag.adb: Upgrade all the references to Tag_Component by the new
      	attribute First_Tag_Component.
      
      	* sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
      	(Interface_List, Set_Interface_List): New subprograms.
      	(Interface_Present, Set_Interface_Present): New subprograms.
      	(Limited_Present, Set_Limited_Present): Available also in derived
      	type definition nodes.
      	(Protected_Present, Set_Protected_Present): Available also in
      	record type definition and
      	derived type definition nodes.
      	(Synchronized_Present, Set_Synchronized_Present): New subprograms.
      	(Task_Present, Set_Task_Present): New subprogram.
      	(Task_Body_Procedure): Removed.
      	(Set_Task_Body_Procedure): Removed.
      	These subprogram have been removed because the attribute
      	Task_Body_Procedure has been moved to the corresponding task type
      	or task subtype entity to leave a field free to store the list
      	of interfaces implemented by a task (for AI-345)
      	Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
      	(Null_Exclusion_Present): Change to Flag11, to avoid conflict with
      	expression flag Do_Range_Check
      	(Exception_Junk): Change to Flag7 to accomodate above change
      	(Box_Present, Default_Name, Specification, Set_Box_Present,
      	Set_Default_Name, Set_Specification): Expand the expression
      	"X in N_Formal_Subprogram_Declaration" into the corresponding
      	two comparisons. Required to use the csinfo tool.
      
      	* exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
      	"with string" given.
      
              * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
              expression given.
      
      	* par-ch11.adb (P_Raise_Statement): Recognize with string expression
      	in 2005 mode
      
      	* exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
      	attribute Task_Body_Procedure rather than the old semantic field that
      	was available in the task_type_declaration node.
      
      	* par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
      	interface type definitions.
      	(P_Formal_Derived_Type_Definition): Modified to handle the list of
      	interfaces.
      
      	* par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
      	task type declaration.
      	(P_Protected): Modified to handle the list of interfaces in a
      	protected type declaration.
      
      From-SVN: r96489
      Javier Miranda committed
    • re PR ada/13470 (64bits Ada bootstrap failure:xnmake etc. crash generating nmake.adb etc.) · 2f388d2d
      2005-03-08  Robert Dewar  <dewar@adacore.com>
      
      	PR ada/13470
      
      	* a-stunau.ads, a-stunau.adb:
      	Change interface to allow efficient (and correct) implementation
      	The previous changes to allow extra space in unbounded strings had
      	left this interface a bit broken.
      
      	* a-suteio.adb: Avoid unnecessary use of Get/Set_String
      
      	* g-spipat.ads, g-spipat.adb: New interface for Get_String
      	Minor reformatting (function specs)
      
      	* g-spitbo.adb: New interface for Get_String
      
      	* g-spitbo.ads: Minor reformatting
      
      	* a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
      
      	* a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
      
      From-SVN: r96488
      Robert Dewar committed
    • a-stzunb.adb, [...]: Move Realloc_For_Chunk to private part of package. · 798a9055
      2005-03-08  Robert Dewar  <dewar@adacore.com>
      
      	* a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
      	a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
      	Realloc_For_Chunk to private part of package.
      	New subprograms for AI-301
      
      	* a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
      	Get_Line procedure.
      	Avoid unnecessary use of Get/Set_Wide_String
      
      From-SVN: r96487
      Robert Dewar committed
    • a-reatim.ads, [...]: Add functions Minutes and Seconds for AI-386. · f122ea71
      2005-03-08  Robert Dewar  <dewar@adacore.com>
      
      	* a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
      	AI-386.
      
      	* a-retide.ads: Minor comment changes
      
      From-SVN: r96486
      Robert Dewar committed
    • tracebak.c: Under Darwin, use the same unwinding mechanisms as under PPC/AIX. · 0f76876e
      2005-03-08  Nicolas Setton  <setton@adacore.com>
      
      	* tracebak.c: Under Darwin, use the same unwinding mechanisms as under
      	PPC/AIX.
      
      From-SVN: r96485
      Nicolas Setton committed
    • adaint.c: Prefix #include of VMS system header files with vms/ [VMS]... · 6178dd5c
      2005-03-08  Doug Rupp  <rupp@adacore.com>
      
      	* adaint.c: Prefix #include of VMS system header files with vms/
      	[VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
      	Do not define a dummy function "convert_addresses" under Darwin,
      	not needed.
      
      	* tb-alvms.c, expect.c: Prefix #include of VMS system header files
      	with vms/
      
      From-SVN: r96484
      Doug Rupp committed
    • s-intman-posix.adb (Notify_Exception): Adjust signature, as handler for… · 3f8abd98
      s-intman-posix.adb (Notify_Exception): Adjust signature, as handler for sigactions with SA_SIGINFO set.
      
      2005-03-08  Olivier Hainque  <hainque@adacore.com>
      
      	* s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
      	for sigactions with SA_SIGINFO set. Call
      	__gnat_adjust_context_for_raise before raising, to perform the
      	potentially required adjustments to the machine context for the GCC
      	unwinder.
      
      	* raise.h (__gnat_adjust_context_for_raise): New prototype.
      
      	* init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
      	Adjust PC by one in the provided machine context.
      	(__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
      	so that the handler is passed the context structure to adjust prior to
      	the raise.
      	(__gnat_error_handler) HPUX: Adjust the signature to match what an
      	SA_SIGINFO sigaction should look like. Call
      	__gnat_adjust_context_for_raise before actually raising.
      	(__gnat_adjust_context_for_raise): Default noop to help PC
      	adjustments before raise from signal handlers.
      	(__gnat_error_handler): Indirectly call a predicate function to
      	determine if a condition should be resignaled or not.
      	(__gnat_set_resignal_predicate): User interface to modify the predicate.
      	(__gnat_default_resignal_p): Default GNAT predicate.
      
      From-SVN: r96482
      Olivier Hainque committed
    • mlib-tgt-tru64.adb, [...] (Library_Exist_For, [...]): Add new parameter In_Tree… · 7e98a4c6
      mlib-tgt-tru64.adb, [...] (Library_Exist_For, [...]): Add new parameter In_Tree to specify the project tree...
      
      2005-03-08  Vincent Celier  <celier@adacore.com>
      
      	* mlib-tgt-tru64.adb, mlib-tgt-aix.adb, 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-lynxos.adb (Library_Exist_For,
      	Library_File_Name_For): Add new parameter In_Tree
      	to specify the project tree: needed by the project manager.
      	Adapt to changes in project manager using new parameter In_Tree.
      	Remove local imports, use functions in System.CRTL.
      
      	* make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
      	to use the project manager.
      
      	* makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
      	In_Tree to designate the project tree. Adapt to changes in the project
      	manager, using In_Tree.
      
      	* mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
      	Copy_Interface_Sources): Add new parameter In_Tree to specify the
      	project tree: needed by the project manager.
      	(Build_Library): Check that Arg'Length >= 6 before checking if it
      	contains "--RTS=...".
      
      	* mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
      	Library_File_Name_For): Add new parameter In_Tree to specify the
      	project tree: needed by the project manager.
      
      	* prj.ads, prj.adb: Major modifications to allow several project trees
      	in memory at the same time.
      	Change tables to dynamic tables and hash tables to dynamic hash
      	tables. Move tables and hash tables from Prj.Com (in the visible part)
      	and Prj.Env (in the private part). Move some constants from the visible
      	part to the private part. Make other constants deferred.
      	(Project_Empty): Make it a variable, not a function
      	(Empty_Project): Add parameter Tree. Returns the data with the default
      	naming data of the project tree Tree.
      	(Initialize): After updating Std_Naming_Data, copy its value to the
      	component Naming of Project Empty.
      	(Register_Default_Naming_Scheme): Use and update the default naming
      	component of the project tree, instead of the global variable
      	Std_Naming_Data.
      	(Standard_Naming_Data): Add defaulted parameter Tree. If project tree
      	Tree is not defaulted, return the default naming data of the Tree.
      	(Initial_Buffer_Size): Constant moved from private part
      	(Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
      	variables initialized in procedure Initialize.
      	(Add_To_Buffer): Add two in out parameters to replace global variables
      	Buffer and Buffer_Last.
      	(Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
      	functions.
      	Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
      	hash tables.
      	(Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
      	for the project tree.
      	(Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
      	constant at the beginning of the package spec, so that they cane be used
      	in subprograms before their full declarations.
      	(Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
      	(Empty_Project): Add parameter of type Project_Node_Ref
      	(Private_Project_Tree_Data): Add component Default_Naming of type
      	Naming_Data.
      	(Buffer, Buffer_Last): remove global variables
      	(Add_To_Buffer): Add two in out parameters to replace global variables
      	Buffer and Buffer_Last.
      	(Current_Packages_To_Check): Remove global variable
      	(Empty_Name): Move to private part
      	(No-Symbols): Make it a constant
      	(Private_Project_Tree_Data): New type for the private part of the
      	project tree data.
      	(Project_Tree_Data): New type for the data of a project tree
      	(Project_Tree_Ref): New type to designate a project tree
      	(Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
      	for the project tree.
      
      	* prj-attr.ads: Add with Table; needed, as package Prj no longer
      	imports package Table.
      
      	* prj-com.adb: Remove empty, no longer needed body
      
      	* prj-com.ads: Move most of the content of this package to package Prj.
      
      	* prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
      	designate the project node tree and Packages_To_Check to replace
      	global variable Current_Packages_To_Check.
      	Add new parameters In_Tree and Packages_To_Check to local subprograms,
      	when needed. Adapt to changes in project manager with project node tree
      	In_Tree.
      
      	* prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
      	project tree to most subprograms. Move tables and hash tables to
      	private part of package Prj.
      	Adapt to changes in project manager using project tree In_Tree.
      
      	* prj-makr.adb (Tree): New constant to designate the project node tree
      	Adapt to change in project manager using project node tree Tree
      
      	* prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
      	display the Library_Src_Dir and the Library_Dir.
      	Add new parameter In_Tree to designate the project node tree to most
      	subprograms. Adapt to changes in the project manager, using project tree
      	In_Tree.
      	(Check_Naming_Scheme): Do not alter the casing on platforms where
      	the casing of file names is not significant.
      	(Check): Add new parameter In_Tree to designate the
      
      	* prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
      	designate the project tree.
      	Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
      
      	* prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
      	to replace those that were in the private part of package Prj.
      	Add new parameter In__Tree to designate the project node tree to most
      	subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
      	(Post_Parse_Context_Clause): When specifying the project node of a with
      	clause, indicate that it is a limited with only if there is "limited"
      	in the with clause, not necessarily when In_Limited is True.
      	(Parse): Add new parameter In_Tree to designate the project node tree
      
      	* prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
      	designate the project node tree. Adapt to change in Prj.Tree with
      	project node tree In_Tree.
      
      	* prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
      	tree In_Tree in the call to function Empty_Process to give its initial
      	value to the project data Processed_Data.
      	Add new parameters In_Tree to designate the project tree and
      	From_Project_Node_Tree to designate the project node tree to several
      	subprograms. Adapt to change in project manager with project tree
      	In_Tree and project node tree From_Project_Node_Tree.
      
      	* prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
      	to replace those that were in the private part of package Prj.
      	Add new parameter In_Tree to designate the project node tree to most
      	subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
      
      	* prj-tree.ads, prj-tree.adb: Add new parameter of type
      	Project_Node_Tree_Ref to most subprograms.
      	Use this new parameter to store project nodes in the designated project
      	node tree.
      	(Project_Node_Tree_Ref): New type to designate a project node tree
      	(Tree_Private_Part): Change table to dynamic table and hash tables to
      	dynamic hash tables.
      
      	* prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
      	the project tree to most subprograms. Adapt to changes in project
      	manager using project tree In_Tree.
      
      	* makegpr.adb (Project_Tree): New constant needed to use project
      	manager.
      
      From-SVN: r96481
      Vincent Celier committed
    • s390.c (s390_secondary_output_reload_class): Adapt check for non-offsettable… · 0ca89db7
      s390.c (s390_secondary_output_reload_class): Adapt check for non-offsettable memory references to cope with outstanding...
      
      	* config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
      	for non-offsettable memory references to cope with outstanding reload
      	replacements, take 2.
      
      From-SVN: r96480
      Ulrich Weigand committed
    • s-osinte-tru64.ads, [...] (Get_Stack_Base): New function · 09c239f6
      2005-03-08  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
      	(Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
      	calling thread.
      	(Stack_Base_Available): New flag.
      	(Get_Page_Size): New overloaded functions imported from C.
      	(PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
      	PROT_ON, PROT_OFF): New constants.
      	(mprotect): New function imported from C.
      	(pthread_teb_t): New record type.
      
      	* s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
      	(Create_Task): Account for the Yellow Zone and the guard page.
      
      From-SVN: r96479
      Eric Botcazou committed
    • system-unixware.ads, [...]: Add line defining Compiler_System_Version to be False. · 0b6eb8e1
      2005-03-08  Robert Dewar  <dewar@adacore.com>
      
      	* system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
      	system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
      	system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
      	system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
      	system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
      	system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
      	system-interix.ads, system-solaris-sparc.ads,
      	system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
      	system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
      	system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
      	system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
      	system-linux-s390.ads, system-linux-s390x.ads: Add line defining
      	Compiler_System_Version to be False.
      
      	* opt.ads: Add new flag Opt.Address_Is_Private
      
      	* targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
      	Add new parameter Compiler_System_Version to avoid checking for
      	completeness of parameters when compiler is compiling itself.
      	Allows old versions of GNAT to be compiled with new compiler.
      
      From-SVN: r96478
      Robert Dewar committed
    • re PR target/18668 (use prescott's fisttp) · 9199f050
      	PR target/18668
      	* config/i386/i386.h (x86_fisttp): New.
      	(TARGET_FISTTP): New macro.
      	* config/i386/i386.c (x86_fisttp): Set for NOCONA.
      	(output_fix_trunc): Add fisttp parameter.  Generate fisttp x87
      	instruction when fisttp flag is set.
      	* config/i386/i386-protos.h (output_fix_trunc): Change declaration.
      
      	* config/i386/i386.md (type attribute): Add fisttp.
      	(unit attribute): Set to i387 for fisttp type.
      	(X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros.
      	(fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for
      	TARGET_FISTTP.
      	(fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2):
      	Generate fisttp patterns for TARGET_FISTTP. Implement using mode
      	macros.
      	(fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp
      	patterns for TARGET_FISTTP.  Enable patterns for
      	(TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros.
      	(fix_trunc<mode>_i387_fisttp_1, fix_trunc<mode>_i387_fisttp,
      	fix_trunc<mode>_i387_fisttp_with_temp): New instruction patterns to
      	implement fisttp x87 insn.
      	(fix_trunc*_i387_fisttp splitters): New patterns.
      	(*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387):
      	Rename to *fix_trunc<mode>_i387_1.  Implement using mode macros.
      	Disable patterns for TARGET_FISTTP.  Add comment about FLAGS_REG
      	clobber.
      	(fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory):
      	Rename to fix_trunc<mode>_i387 and fix_trunc<mode>_i387_with_temp.
      	Implement using mode macros. Disable patterns for TARGET_FISTTP.
      	(fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory,
      	fix_trunchi_nomemory): Rename to fix_trunc<mode>_i387 and
      	fix_trunc<mode>_i387_with_temp. Implement using mode macros.
      	Disable patterns for TARGET_FISTTP.
      	(fix_trunc*_i387 splitters): Implement usign mode macros.
      	(fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse,
      	fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH).
      	(fix_trunx*_sse peephole2s): Implement using mode macros.
      
      From-SVN: r96477
      Uros Bizjak committed
    • re PR rtl-optimization/20291 (combine throws away clobbers before trying to split) · 9b12dc4f
      	PR rtl-optimization/20291
      	* combine.c (try_combine): If splitting fails, re-try with
      	original combined pattern, i.e. before clobber stripping.
      
      From-SVN: r96476
      J"orn Rennecke committed
    • Index: libcpp/ChangeLog · 6baba9bb
      2005-03-14  Geoffrey Keating  <geoffk@apple.com>
      
      	* lex.c (forms_identifier_p): Disable UCNs in C89 mode.
      
      Index: gcc/testsuite/ChangeLog
      2005-03-14  Geoffrey Keating  <geoffk@apple.com>
      
      	* gcc.dg/cpp/ucnid-6.c: New.
      
      From-SVN: r96475
      Geoffrey Keating committed
    • mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for STACK_GROWS_DOWNWARD. · 85bfab36
      2005-03-14  Eric Christopher  <echristo@redhat.com>
      
      	* config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
      	STACK_GROWS_DOWNWARD.
      
      From-SVN: r96474
      Eric Christopher committed
    • real.h (struct real_format): Split the signbit field into two two fields,… · b87a0206
      real.h (struct real_format): Split the signbit field into two two fields, signbit_ro and signbit_rw.
      
      
      	* real.h (struct real_format): Split the signbit field into two
      	two fields, signbit_ro and signbit_rw.
      	* real.c (ieee_single_format, mips_single_format, ieee_double_format,
      	mips_double_format, ieee_extended_motorola_format,
      	ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format,
      	ieee_extended_intel_128_format, ibm_extended_format,
      	mips_extended_format, ieee_quad_format, mips_quad_format,
      	vax_f_format, vax_d_format, vax_g_format, i370_single_format,
      	i370_double_format, c4x_single_format, c4x_extended_format,
      	real_internal_format): Update initializers for new field.
      	* builtins.c (expand_builtin_signbit): Use signbit_ro field of the
      	real_format structure.
      	* optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw
      	field of the real_format structure.
      
      From-SVN: r96471
      Roger Sayle committed
    • trans-stmt.c (gfc_trans_label_assign): Don't set DECL_ARTIFICIAL flag to zero on label_tree. · 223c8158
      2005-03-15  Feng Wang  <fengwang@nudt.edu.cn>
      
      	* trans-stmt.c (gfc_trans_label_assign): Don't set DECL_ARTIFICIAL flag
              to zero on label_tree.
      
      From-SVN: r96468
      Feng Wang committed
    • re PR fortran/18827 (ICE on assign to common variable) · ce2df7c6
      fortran/
      2005-03-15  Feng Wang  <fengwang@nudt.edu.cn>
      
              PR fortran/18827
              * io.c (resolve_tag): Add checking on assigned label.
              (match_dt_format): Does not set symbol assign attribute.
              * match.c (gfc_match_goto):Does not set symbol assign attribute.
              * resolve.c (resolve_code): Add checking on assigned label.
              * trans-common.c (build_field): Deals with common variable assigned
              a label.
              * trans-stmt.c (gfc_conv_label_variable): New function.
              (gfc_trans_label_assign): Use it.
              (gfc_trans_goto): Ditto.
              * trans-io.c (set_string): Ditto.
              * trans.h (gfc_conv_label_variable): Add prototype.
      testsuite/
      2005-03-15  Feng Wang  <fengwang@nudt.edu.cn>
      
              PR fortran/18827
              * gfortran.dg/assign_2.f90: New test.
              * gfortran.dg/assign_3.f90: New test.
              * gfortran.dg/assign.f90: New test.
      
      From-SVN: r96467
      Feng Wang committed
    • cv_func.C, [...]: Ensure uniqueness of test assertion names. · 08091139
      	* g++.dg/other/cv_func.C, g++.dg/other/offsetof3.C,
      	g++.dg/parse/error11.C, g++.dg/tc1/dr108.C,
      	g++.dg/template/local4.C, g++.dg/template/nontype6.C,
      	g++.dg/warn/deprecated.C: Ensure uniqueness of test assertion
      	names.
      
      From-SVN: r96463
      Joseph Myers committed
    • re PR tree-optimization/20458 (structure aliasing causes wrong code) · 9044951e
      2005-03-14  Daniel Berlin <dberlin@dberlin.org>
      
      	Fix PR tree-optimization/20458
      
      	* tree-flow-inline.h (mark_call_clobbered): Don't fiddle
      	DECL_EXTERNAL on STRUCT_FIELD tags.
      	(clear_call_clobbered): Ditto.
      	* tree-ssa-operands.c (note_addressable): Make sure the original
      	variable doesn't slip into the addressable list if we have
      	subvars.
      	* tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD
      	tags too.
      
      From-SVN: r96462
      Daniel Berlin committed
    • Index: gcc/ChangeLog · 50668cf6
      2005-03-14  Geoffrey Keating  <geoffk@apple.com>
      
      	* doc/cppopts.texi (-fexec-charset): Add concept index entry.
      	(-fwide-exec-charset): Likewise.
      	(-finput-charset): Likewise.
      	* doc/invoke.texi (Warning Options): Document -Wnormalized=.
      	* c-opts.c (c_common_handle_option): Handle -Wnormalized=.
      	* c.opt (Wnormalized): New.
      
      Index: libcpp/ChangeLog
      2005-03-14  Geoffrey Keating  <geoffk@apple.com>
      
      	* init.c (cpp_create_reader): Default warn_normalize to normalized_C.
      	* charset.c: Update for new format of ucnid.h.
      	(ucn_valid_in_identifier): Update for new format of ucnid.h.
      	Add NST parameter, and update it; update callers.
      	(cpp_valid_ucn): Add NST parameter, update callers.  Replace abort
      	with cpp_error.
      	(convert_ucn): Pass normalize_state to cpp_valid_ucn.
      	* internal.h (struct normalize_state): New.
      	(INITIAL_NORMALIZE_STATE): New.
      	(NORMALIZE_STATE_RESULT): New.
      	(NORMALIZE_STATE_UPDATE_IDNUM): New.
      	(_cpp_valid_ucn): New.
      	* lex.c (warn_about_normalization): New.
      	(forms_identifier_p): Add normalize_state parameter, update callers.
      	(lex_identifier): Add normalize_state parameter, update callers.  Keep
      	the state current.
      	(lex_number): Likewise.
      	(_cpp_lex_direct): Pass normalize_state to subroutines.  Check
      	it with warn_about_normalization.
      	* makeucnid.c: New.
      	* ucnid.h: Replace.
      	* ucnid.pl: Remove.
      	* ucnid.tab: Make appropriate for input to makeucnid.c.  Remove
      	comments about obsolete version of C++.
      	* include/cpplib.h (enum cpp_normalize_level): New.
      	(struct cpp_options): Add warn_normalize field.
      
      Index: gcc/testsuite/ChangeLog
      2005-03-14  Geoffrey Keating  <geoffk@apple.com>
      
      	* gcc.dg/cpp/normalize-1.c: New.
      	* gcc.dg/cpp/normalize-2.c: New.
      	* gcc.dg/cpp/normalize-3.c: New.
      	* gcc.dg/cpp/normalize-4.c: New.
      	* gcc.dg/cpp/ucnid-4.c: New.
      	* gcc.dg/cpp/ucnid-5.c: New.
      	* g++.dg/cpp/normalize-1.C: New.
      	* g++.dg/cpp/ucnid-1.C: New.
      
      From-SVN: r96459
      Geoffrey Keating committed
    • Daily bump. · cd8b38b9
      From-SVN: r96457
      GCC Administrator committed
  2. 14 Mar, 2005 9 commits
    • * doc/invoke.texi: Add reference to Visibility document. · ce84fa41
      From-SVN: r96453
      Devang Patel committed
    • config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to MASK_SPLIT_ADDRESSES. · 21c425ee
      	* config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to
      	MASK_SPLIT_ADDRESSES.
      	* config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete.
      	(MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD)
      	(MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT)
      	(MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS)
      	(MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN)
      	(MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16)
      	(MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY)
      	(MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400)
      	(MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN)
      	(MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE)
      	(MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D)
      	(MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64)
      	(TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE)
      	(TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS)
      	(TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT)
      	(TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA)
      	(TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN)
      	(TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD)
      	(TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV)
      	(TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1)
      	(TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120)
      	(TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS)
      	(TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32)
      	(TARGET_EXPLICIT_RELOCS): Delete.
      	(TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete.
      	(TARGET_OPTIONS): Remove entry for -mfix-vr4130.
      	* config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
      	(override_options): Set MASK_LONG64 if -mint64 is given and no
      	-mlongXX option is.  Complain about -mint64 -mlong32.
      	(override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename
      	MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT.
      	* config/mips/mips.opt: New file.
      
      From-SVN: r96452
      Richard Sandiford committed
    • config.gcc (extra_options): New variable for listing option files. · 75685792
      	* config.gcc (extra_options): New variable for listing option files.
      	Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
      	* configure.ac (extra_opt_files): New AC_SUBST variable.
      	(tm_file_list, tm_include_list): Include options.h first.
      	* configure: Regenerate.
      	* Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
      	(s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
      	(s-options-h): New rule.
      	(options.h): Depend on it.
      	(TEXI_GCCINT_FILES): Add options.texi.
      	* hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
      	* hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
      	* target.h (gcc_target): Add default_target_flags and handle_option.
      	* target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
      	(TARGET_HANDLE_OPTION): New macros.
      	(TARGET_INITIALIZER): Include them.
      	* opt-functions.awk (opt_args, nth_arg): New functions.
      	(switch_flags): Handle the "Target" flag.
      	(var_args): Delete.
      	(var_name): Use opt_args and nth_arg.
      	(var_set, var_ref): Likewise.  Handle "Mask" and "InverseMask".
      	* opth-gen.awk: Declare target_flags.  Declare MASK_* and TARGET_*
      	macros for the "Mask" and "InverseMask" options.
      	* opts.h (cl_var_cond): New enum.
      	(cl_option): Replace the "has_set_value" and "set_value" fields with
      	"var_cond" and "var_value".
      	(CL_TARGET): New macro.
      	(option_enabled, print_filtered_help): Declare.
      	(decode_options): Move definition.
      	* opts.c (handle_option): Search for the original option before
      	removing any "no-" prefix.  Handle CL_TARGET.  Adjust for the new
      	var_cond and var_value fields.  Use targetm.handle_option to handle
      	target options.
      	(decode_options): Set target_flags to targetm.default_target_flags.
      	(print_filtered_help): Make global.  Handle CL_TARGET.
      	(option_enabled): New function.
      	* toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
      	(display_target_options, set_target_switch, print_switch_values)
      	(default_pch_valid_p): Guard uses of target_switches with
      	#ifdef TARGET_SWITCHES.  Also...
      	(display_target_options): Display the CL_TARGET entries in cl_options.
      	(set_target_option): Don't complain about the "" option when
      	TARGET_SWITCHES is undefined.
      	(print_switch_values): Use option_enabled.
      	(default_pch_valid_p): Check cl_options[] when looking for something
      	that has changed the value of target_flags.
      	* c.opt: Remove documentation from top of file.
      	* doc/gccint.texi: Add an "Options" chapter.  Include options.texi.
      	* doc/sourecebuild.texi: Refer to the new options documentation
      	instead of c.opt.  Document machine-specific .opt files.
      	* doc/tm.texi (target_flags): Say that this variable is declared
      	by options.h.
      	(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
      	(TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
      	an alternative.
      	* doc/options.texi: New file.
      
      From-SVN: r96448
      Richard Sandiford committed
    • re PR rtl-optimization/18628 (miscompilation of switch statement in loop) · 3a3b81e7
      gcc/ChangeLog:
      PR middle-end/18628
      * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
      register.
      gcc/testsuite/ChangeLog:
      * gcc.dg/pr18628.c: New.
      
      From-SVN: r96445
      Alexandre Oliva committed
    • re PR c++/20280 (ICE in create_tmp_var, at gimplify.c:368) · aff98faf
      gcc/ChangeLog:
      PR c++/20280
      * gimplify.c (gimplify_cond_expr): Add fallback argument.  Use a
      temporary variable of pointer type if an lvalues is required.
      (gimplify_modify_expr_rhs): Request an rvalue from it.
      (gimplify_expr): Pass fallback on.
      gcc/testsuite/ChangeLog:
      PR c++/20280
      * g++.dg/tree-ssa/pr20280.C: New.
      
      From-SVN: r96444
      Alexandre Oliva committed
    • re PR fortran/20467 (Bad fortran code causes ICE) · 2bb02bf0
      fortran/
      PR fortran/20467
      * symbol.c (check_conflict): A dummy argument can't be a statement
      function.
      
      testsuite/
      PR fortran/20467
      * gfortran.dg/stfunc_2.f90: New test.
      
      From-SVN: r96443
      Tobias Schlüter committed
    • * cfgbuild.c: Update comments. · 55b18c19
      From-SVN: r96442
      Kazu Hirata committed
    • re PR rtl-optimization/17236 (inefficient code for long long multiply on x86) · f927760b
      
      	PR rtl-optimization/17236
      	* optabs.c (expand_doubleword_mult): New helper function split out
      	from expand_binop.  Permute the order in which instructions are
      	emitted to minimize the number of simultaneously live registers.
      	(expand_binop): Call expand_doubleword_mult to synthesize a double
      	word multiplication.
      
      From-SVN: r96441
      Roger Sayle committed
    • basic-block.h: Update the prototypes of cached_make_edge and rtl_make_eh_edge. · a6ee1a15
      	* basic-block.h: Update the prototypes of cached_make_edge and
      	rtl_make_eh_edge.
      	* cfg.c (cached_make_edge): Take edge_cache representing one
      	row of the adjacency matrix of edges.
      	* cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
      	(make_edges): Initialize edge_cache to represent one row of
      	the adjacency matrix of edges.
      
      From-SVN: r96440
      Kazu Hirata committed