Robert Dewar [Fri, 9 Dec 2005 17:20:41 +0000 (18:20 +0100)]
sem_prag.adb: Processing for new pragma Complete_Representation (Analyze_Pragma...
2005-12-05 Robert Dewar <dewar@adacore.com>
* sem_prag.adb: Processing for new pragma Complete_Representation
(Analyze_Pragma, case Debug): Implement two argument form.
* par-prag.adb: Entry for new pragma Complete_Representation
(Prag, case Debug): Recognize two argument form of pragma Debug
New interface for Set_Style_Check_Options.
* sem_ch13.adb: Implement new pragma Complete_Representation.
* snames.adb, snames.ads, snames.h: Entry for new pragma
Complete_Representation.
From-SVN: r108299
Thomas Quinot [Fri, 9 Dec 2005 17:20:28 +0000 (18:20 +0100)]
mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a command line switch overruns the...
2005-12-05 Thomas Quinot <quinot@adacore.com>
* mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
command line switch overruns the output buffer.
From-SVN: r108298
Vincent Celier [Fri, 9 Dec 2005 17:20:15 +0000 (18:20 +0100)]
gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U If GNAT CHECK is called with a project file...
2005-12-05 Vincent Celier <celier@adacore.com>
* gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
If GNAT CHECK is called with a project file, but with no
source on the command line, call gnatcheck with all the compilable
sources of the project.
Take into account the new command Check, for gnatcheck. Treat as for
other ASIS tools: take into account project, specific package Check and
Compiler switches.
For ASIS tools, add the switches in package Compiler for
the invocation of the compiler.
* prj-attr.adb: Add package Check and its attributes
* vms_conv.ads (Command_Type): New command Check, for gnatcheck
* vms_conv.adb (Initialize): Change Params of command Check to
unlimited files.
Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
Add data for new command Check
* vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
ELIM.
Add qualifiers for Check command options
(Command_Type): New command Check
From-SVN: r108297
Robert Dewar [Fri, 9 Dec 2005 17:20:03 +0000 (18:20 +0100)]
freeze.adb (Freeze_Record_Type): Only test for useless pack on record types, not on record subtypes.
2005-12-05 Robert Dewar <dewar@adacore.com>
* freeze.adb (Freeze_Record_Type): Only test for useless pack on record
types, not on record subtypes.
(Freeze_Entity): Code cleanup. Add barrier to the loop
that generates the references for primitive operations. This allows to
remove an unnecessary exception handler.
Code reformatting and comment clean ups.
From-SVN: r108296
Robert Dewar [Fri, 9 Dec 2005 17:19:49 +0000 (18:19 +0100)]
einfo.adb (Itype_Printed): New flag
2005-12-05 Robert Dewar <dewar@adacore.com>
Ed Schonberg <schonberg@adacore.com>
Gary Dismukes <dismukes@adacore.com>
Javier Miranda <miranda@adacore.com>
Hristian Kirtchev <kirtchev@adacore.com>
* einfo.adb (Itype_Printed): New flag
(Is_Limited_Type): Derived types do not inherit limitedness from
interface progenitors.
(Is_Return_By_Reference_Type): Predicate does not apply to limited
interfaces.
* einfo.ads (Itype_Printed): New flag
Move Is_Wrapper_Package to proper section
Add missing Inline for Is_Volatile
* output.ads, output.adb (Write_Erase_Char): New procedure
(Save/Restore_Output_Buffer): New procedures
(Save/Restore_Output_Buffer): New procedures
* sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
Add missing support for anonymous access type
(Write_Id): Insert calls to Write_Itype
(Write_Itype): New procedure to output itypes
* par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
use of "limited" in declaration.
* sinfo.ads, sinfo.adb:
Formal derived types can carry an explicit "limited" indication.
* sem_ch3.adb: Add with and use of Targparm.
(Create_Component): If Frontend_Layout_On_Target is True and the
copied component does not have a known static Esize, then reset
the size and positional fields of the new component.
(Analyze_Component_Declaration): A limited component is
legal within a protected type that implements an interface.
(Collect_Interfaces): Do not add to the list the interfaces that
are implemented by the ancestors.
(Derived_Type_Declaration): If the parent of the full-view is an
interface perform a transformation of the tree to ensure that it has
the same parent than the partial-view. This simplifies the job of the
expander in order to generate the correct object layout, and it is
needed because the list of interfaces of the full-view can be given in
any order.
(Process_Full_View): The parent of the full-view does not need to be
a descendant of the parent of the partial view if both parents are
interfaces.
(Analyze_Private_Extension_Declaration): If declaration has an explicit
"limited" the parent must be a limited type.
(Build_Derived_Record_Type): A derived type that is explicitly limited
must have limited ancestor and progenitors.
(Build_Derived_Type): Ditto.
(Process_Full_View): Verify that explicit uses of "limited" in partial
and full declarations are consistent.
(Find_Ancestor_Interface): Remove function.
(Collect_Implemented_Interfaces): New procedure used to gather all
implemented interfaces by a type.
(Contain_Interface): New function used to check whether an interface is
present in a list.
(Find_Hidden_Interface): New function used to determine whether two
lists of interfaces constitute a set equality. If not, the first
differing interface is returned.
(Process_Full_View): Improve the check for the "no hidden interface"
rule as defined by AI-396.
From-SVN: r108295
Robert Dewar [Fri, 9 Dec 2005 17:19:33 +0000 (18:19 +0100)]
exp_util.ads, [...] (Is_Ref_To_Bit_Packed_Slice): Handle case of type conversion.
2005-12-05 Robert Dewar <dewar@adacore.com>
Javier Miranda <miranda@adacore.com>
Ed Schonberg <schonberg@adacore.com>
* exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
of type conversion.
(Find_Interface): New subprogram that given a tagged type and one of its
component associated with the secondary table of an abstract interface
type, return the entity associated with such abstract interface type.
(Make_Subtype_From_Expr): If type has unknown discriminants, always use
base type to create anonymous subtype, because entity may be a locally
declared subtype or generic actual.
(Find_Interface): New subprogram that given a tagged type and one of its
component associated with the secondary table of an abstract interface
type, return the entity associated with such abstract interface type.
* sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
conversion cannot be handled at compile time. In this case we pass this
information to the expander to generate the appropriate code.
From-SVN: r108294
Robert Dewar [Fri, 9 Dec 2005 17:19:19 +0000 (18:19 +0100)]
exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean parameter in call to Image_Wide_Character.
2005-12-05 Robert Dewar <dewar@adacore.com>
* exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
parameter in call to Image_Wide_Character.
* s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
(Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
annoying FFFE/FFFF inconsistency.
From-SVN: r108293
Javier Miranda [Fri, 9 Dec 2005 17:18:26 +0000 (18:18 +0100)]
exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types and the assignment to a class-wide object...
2005-12-05 Javier Miranda <miranda@adacore.com>
* exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
and the assignment to a class-wide object, before the assignment we
generate a run-time check to ensure that the tag of the Target is
covered by the tag of the source.
From-SVN: r108292
Pascal Obry [Fri, 9 Dec 2005 17:18:03 +0000 (18:18 +0100)]
g-diopit.adb (Find): Fix test to exit the iterator and make sure that the iterator is quitting...
2005-12-05 Pascal Obry <obry@adacore.com>
* g-diopit.adb (Find): Fix test to exit the iterator and make sure that
the iterator is quitting iteration on parent directory.
From-SVN: r108291
Olivier Hainque [Fri, 9 Dec 2005 17:17:51 +0000 (18:17 +0100)]
trans.c (tree_transform, emit_check): Adjust calls to build_call_raise, passing the now expected GNAT_NODE argument.
2005-12-05 Olivier Hainque <hainque@adacore.com>
Eric Botcazou <ebotcazou@adacore.com>
* trans.c (tree_transform, emit_check): Adjust calls to
build_call_raise, passing the now expected GNAT_NODE argument.
* gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
source line information than what the current global locus indicates
when appropriate.
* utils2.c (build_simple_component_ref): Return 0 if the offset of the
field has overflowed.
(build_call_raise): Add a GNAT_NODE argument to convey better source
line information than what the current global locus indicates when
appropriate.
(build_component_ref): Adjust call to build_call_raise.
From-SVN: r108290
Javier Miranda [Fri, 9 Dec 2005 17:16:47 +0000 (18:16 +0100)]
exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records with IP subprogram were only supported if...
2005-12-05 Javier Miranda <miranda@adacore.com>
* exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
with IP subprogram were only supported if there were limited types.
* sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
records with IP subprogram were only supported if there were limited
types.
From-SVN: r108289
Thomas Quinot [Fri, 9 Dec 2005 17:16:35 +0000 (18:16 +0100)]
hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1...
2005-12-05 Thomas Quinot <quinot@adacore.com>
Robert Dewar <dewar@adacore.com>
* hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
which is the absolute maximum length we can support.
* frontend.adb: For the processing of configuration pragma files,
remove references to Opt.Max_Line_Length, which is not checked anymore.
* namet.ads (Name_Buffer): Adjust size to reflect increase on max line
length.
* scn.adb, scng.adb:
Always check line length against the absolute supported maximum,
Hostparm.Max_Line_Length.
* stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
value for the maximum line length is Max_Line_Length (not
Column_Number'Last).
Minor error msg update
(Set_Style_Check_Options): New interface returning error msg
Minor code reorganization (processing for 'M' was out of alpha order)
* switch-c.adb: New interface for Set_Style_Check_Options
* stylesw.ads (Set_Style_Check_Options): New interface returning error
msg.
From-SVN: r108288
Matthew Heaney [Fri, 9 Dec 2005 17:16:22 +0000 (18:16 +0100)]
a-convec.adb (Merge): Added assertions to check whether vector params are sorted.
2005-12-05 Matthew Heaney <heaney@adacore.com>
* a-convec.adb (Merge): Added assertions to check whether vector params
are sorted.
* a-coinve.adb (Merge): Added assertions to check whether vector params
are sorted.
* a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
draft.
(Cursor'Read): raises PE
* a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
to its default value.
* a-cihama.adb: Manually check whether cursor's key and elem are
non-null
* a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
(Merge): Assert that target and source lists are in order
(Swap): Declare non-const temporaries, to pass to Splice
* a-cdlili.ads: (Splice): Changed param name and param mode
* a-cdlili.adb: (Splice): Changed param name and param mode
(Merge): Assert that target and source lists are in order
(Swap): Declare non-const temporaries, to pass to Splice
* a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
(Write): declare Stream param as not null
* a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
an exception message.
From-SVN: r108287
Olivier Hainque [Fri, 9 Dec 2005 17:16:11 +0000 (18:16 +0100)]
decl.c (gnat_to_gnu_entity, [...]): Don't early expand pointer initialization values.
2005-12-05 Olivier Hainque <hainque@adacore.com>
* decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
pointer initialization values. Make a SAVE_EXPR instead. Add comments
about the use and expansion of SAVE_EXPRs in the various possible
renaming handling cases.
(components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
abusing DECL_FCONTEXT.
From-SVN: r108286
Doug Rupp [Fri, 9 Dec 2005 17:14:34 +0000 (18:14 +0100)]
mlib-tgt-vms-ia64.adb, [...] (Is_Interface): Change Ada bind file prefix on VMS from b$ to b__.
2005-12-05 Doug Rupp <rupp@adacore.com>
* mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
Ada bind file prefix on VMS from b$ to b__.
(Build_Dynamic_Library): Change Init file suffix on VMS from $init to
__init.
* prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
Targparm.OpenVMS_On_Target.
(Object_Suffix): Initialize with target object suffix.
(Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
* butil.adb: Change some Hostparm.OpenVMS checks to
Targparm.OpenVMS_On_Target.
* clean.adb: Change some Hostparm.OpenVMS checks to
Targparm.OpenVMS_On_Target.
(Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
Ada bind file prefix on VMS from b$ to b__.
* gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
--GCC so that Get_Target_Parameters can find system.ads.
(Gnatlink): Call Get_Target_Parameters in mainline.
Initialize standard packages for Targparm.
Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
(Process_Args): Also Check for object files with target object
extension.
(Make_Binder_File_Names): Create with target object extension.
(Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
to b__.
* mlib-prj.adb: Change some Hostparm.OpenVMS checks to
Targparm.OpenVMS_On_Target.
({declaration},Build_Library,Check_Library): Change Ada bind file
prefix on VMS from b$ to b__.
* osint-b.adb: Change some Hostparm.OpenVMS checks to
Targparm.OpenVMS_On_Target.
(Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
b__.
* targext.c: New file.
* Makefile.in: add support for vxworks653 builds
(../../vxaddr2line): gnatlink with targext.o.
(TOOLS_LIBS): Move targext.o to precede libgnat.
(init.o, initialize.o): Minor clean up in dependencies.
(GNATLINK_OBJS): Add targparm.o, snames.o
Add rules fo building targext.o and linking it explicitly with all
tools.
Also add targext.o to gnatlib.
* Make-lang.in: Add rules for building targext.o and linking it in
with gnat1 and gnatbind.
Add entry for exp_sel.o.
* osint.adb Change some Hostparm.OpenVMS checks to
Targparm.OpenVMS_On_Target.
(Object_File_Name): Use target object suffix.
* osint.ads (Object_Suffix): Remove, no longer used.
(Target_Object_Suffix): Initialize with target object suffix.
* rident.ads: Add special exception to license.
* targparm.adb (Get_Target_Parameters): Set the value of
Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
value.
(Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
* targparm.ads: Add special exception to license.
* g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
function.
(Copy_File): Make sure from file is closed if error on to file
(Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
* make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
(Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
* osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
target object suffix.
From-SVN: r108285
Javier Miranda [Fri, 9 Dec 2005 17:13:28 +0000 (18:13 +0100)]
a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body to the specification because the frontend generates...
2005-12-05 Javier Miranda <miranda@adacore.com>
Hristian Kirtchev <kirtchev@adacore.com>
* a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
to the specification because the frontend generates code that uses this
subprogram.
(Set_Interface_Table): Add missing assertion.
Update documentation describing the run-time structure.
(Displace): New subprogram that displaces the pointer to the object
to reference one of its secondary dispatch tables.
(IW_Membership): Modified to use the new table of interfaces.
(Inherit_TSD): Modified to use the new table of interfaces.
(Register_Interface_Tag): Use the additional formal to fill the
contents of the new table of interfaces.
(Set_Interface_Table): New subprogram that stores in the TSD the
pointer to the table of interfaces.
(Set_Offset_To_Top): Use the additional formal to save copy of
the offset value in the table of interfaces.
Update structure of GNAT Primary and Secondary dispatch table diagram.
Add comment section on GNAT dispatch table prologue.
(Offset_To_Signature): Update the constant value of the Signature field.
(Dispatch_Table): Update comment on hidden fields in the prologue.
(Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
the type of formal parameter T to Tag, introduce additional assertions.
(Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
conversion.
(Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
* exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
in all the calls to Expand_Interface_Thunk. Instead of referencing the
record component containing the tag of the secondary dispatch table we
have to use the Offset_To_Top run-time function to get this information;
otherwise if the pointer to the base of the object has been displace
we get a wrong value if we use the 'position attribute.
* exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
all the calls to Expand_Interface_Thunk.
(Make_Secondary_DT): Secondary dispatch tables do not have a table of
interfaces; hence the call to Set_Interface_Table was clearly wrong.
(Collect_All_Interfaces): Modify the internal subprogram Collect to
ensure that the interfaces implemented by the ancestors are placed
at the header of the generated list.
(Expand_Interface_Conversion): Handle the case in which the displacement
associated with the interface conversion is not statically known. In
this case we generate a call to the new run-time subprogram Displace.
(Make_DT): Generate and fill the new table of interfaces.
(Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
Get_Tagged_Kind and Set_Tagged_Kind.
(Tagged_Kind): New function that determines the tagged kind of a type
with respect to limitedness and concurrency and returns a reference to
RE_Tagged_Kind.
(Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
primary dispatch table for a type.
(Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
secondary dispatch table respectively of a tagged type.
* exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
(Expand_Interface_Conversion): New subprogram to indicate if the
displacement of the type conversion is statically known.
(DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
* rtsfind.ads (RE_Offset_To_Top): New entity
(RTU_Id): Add Ada_Task_Termination to the list so that it is made
accessible to users.
(Re_Displace): New entity
(RE_Interface_Data): New entity
(RE_Set_Interface_Data): New_Entity
(RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
RE_TK_Tagged, RE_TK_Task.
* exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
Init_Secondary_Tags_Internal to allow its use with interface types and
also to generate the code for the new additional actual required
by Set_Offset_To_Top.
(Build_Init_Statements): In case of components associated with abstract
interface types there is no need to generate a call to its IP.
(Freeze_Record_Type): Generate Select Specific Data tables only for
concurrent types.
(Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
the bodies and specifications of the predefined primitive operations
dealing with dispatching selects and abort, 'Callable, 'Terminated only
for concurrent types.
* exp_sel.ads, exp_sel.adb: New files.
* exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
properly protected objects and attach handler in the case of the
restricted profile.
Move embeded package Select_Expansion_Utilities into a separate external
package.
(Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
(Build_K, Build_S_Assignment): New subprograms, part of the select
expansion utilities.
(Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
Expand_N_Timed_Entry_Call): Optimize expansion of select statements
where the trigger is a dispatching procedure of a limited tagged type.
From-SVN: r108284
Nicolas Setton [Fri, 9 Dec 2005 17:10:46 +0000 (18:10 +0100)]
adaint.c (__gnat_locate_regular_file): Return immediately if file_name is empty.
2005-12-05 Nicolas Setton <setton@adacore.com>
* adaint.c (__gnat_locate_regular_file): Return immediately if
file_name is empty.
From-SVN: r108283
Doug Rupp [Fri, 9 Dec 2005 17:10:03 +0000 (18:10 +0100)]
mlib-tgt-vms-ia64.adb, [...] (Is_Interface): Change Ada bind file prefix on VMS from b$ to b__.
2005-12-05 Doug Rupp <rupp@adacore.com>
* mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
Ada bind file prefix on VMS from b$ to b__.
(Build_Dynamic_Library): Change Init file suffix on VMS from $init to
__init.
* prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
Targparm.OpenVMS_On_Target.
(Object_Suffix): Initialize with target object suffix.
(Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
* butil.adb: Change some Hostparm.OpenVMS checks to
Targparm.OpenVMS_On_Target.
* clean.adb: Change some Hostparm.OpenVMS checks to
Targparm.OpenVMS_On_Target.
(Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
Ada bind file prefix on VMS from b$ to b__.
* gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
--GCC so that Get_Target_Parameters can find system.ads.
(Gnatlink): Call Get_Target_Parameters in mainline.
Initialize standard packages for Targparm.
Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
(Process_Args): Also Check for object files with target object
extension.
(Make_Binder_File_Names): Create with target object extension.
(Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
to b__.
* mlib-prj.adb: Change some Hostparm.OpenVMS checks to
Targparm.OpenVMS_On_Target.
({declaration},Build_Library,Check_Library): Change Ada bind file
prefix on VMS from b$ to b__.
* osint-b.adb: Change some Hostparm.OpenVMS checks to
Targparm.OpenVMS_On_Target.
(Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
b__.
* targext.c: New file.
* Makefile.in: add support for vxworks653 builds
(../../vxaddr2line): gnatlink with targext.o.
(TOOLS_LIBS): Move targext.o to precede libgnat.
(init.o, initialize.o): Minor clean up in dependencies.
(GNATLINK_OBJS): Add targparm.o, snames.o
Add rules fo building targext.o and linking it explicitly with all
tools.
Also add targext.o to gnatlib.
* Make-lang.in: Add rules for building targext.o and linking it in
with gnat1 and gnatbind.
Add entry for exp_sel.o.
* osint.adb Change some Hostparm.OpenVMS checks to
Targparm.OpenVMS_On_Target.
(Object_File_Name): Use target object suffix.
* osint.ads (Object_Suffix): Remove, no longer used.
(Target_Object_Suffix): Initialize with target object suffix.
* rident.ads: Add special exception to license.
* targparm.adb (Get_Target_Parameters): Set the value of
Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
value.
(Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
* targparm.ads: Add special exception to license.
* g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
function.
(Copy_File): Make sure from file is closed if error on to file
(Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
* make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
(Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
* osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
target object suffix.
From-SVN: r108282
Arnaud Charlet [Fri, 9 Dec 2005 17:09:34 +0000 (18:09 +0100)]
gnatvsn.ads (Library_Version): Bump to version 4.2
* gnatvsn.ads (Library_Version): Bump to version 4.2
(ASIS_Version_Number): Bumped.
From-SVN: r108281
Jakub Jelinek [Fri, 9 Dec 2005 13:50:11 +0000 (14:50 +0100)]
re PR libfortran/24991 (gfortran build fails with - error:gthr-default.h: No such file or directory)
PR libfortran/24991
* acinclude.m4: Include acx.m4 and no-executables.m4.
* configure.ac: Add GCC_TOPLEVEL_SUBDIRS.
* configure: Rebuilt.
* Makefile.am (AM_CPPFLAGS): Use $(host_subdir) in build dir
path.
* Makefile.in: Rebuilt.
From-SVN: r108280
Ulrich Weigand [Fri, 9 Dec 2005 11:20:40 +0000 (11:20 +0000)]
re PR target/25311 (ICE in reload_cse_simplify_operands, at postreload.c:393)
PR target/25311
* config/s390/s390.c (struct s390_address): New field literal_pool.
(s390_decompose_address): Compute literal_pool field. Do not
assume register %r13 is always (and solely) used as pool base.
(s390_extra_constraint_str): Use literal_pool field.
PR target/25311
* gcc.c-torture/compile/pr25311.c: New test.
From-SVN: r108278
Richard Guenther [Fri, 9 Dec 2005 10:21:52 +0000 (10:21 +0000)]
f95-lang.c (build_builtin_fntypes): Use correct return types, as indicated by comments.
2005-12-09 Richard Guenther <rguenther@suse.de>
* f95-lang.c (build_builtin_fntypes): Use correct
return types, as indicated by comments.
From-SVN: r108277
Thiemo Seufer [Fri, 9 Dec 2005 08:19:15 +0000 (08:19 +0000)]
mips.c (override_options): Don't allow too small integers in FP registers.
* config/mips/mips.c (override_options): Don't allow too small
integers in FP registers.
From-SVN: r108276
Jerry DeLisle [Fri, 9 Dec 2005 02:57:13 +0000 (02:57 +0000)]
re PR libfortran/25039 ([4.1 only] comma short-circuit field width)
2005-12-08 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/25039
* gfortran.dg/read_comma.f: New test.
From-SVN: r108272
Jerry DeLisle [Fri, 9 Dec 2005 02:53:41 +0000 (02:53 +0000)]
re PR libfortran/25039 ([4.1 only] comma short-circuit field width)
2005-12-08 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/25039
* io/io.h: Create a new flag sf_read_comma to control comma
separators in numeric reads.
* io/transfer.c (formatted_transfer_scalar): Initialize the flag.
(read_sf): Check for commas coming in and if the flag is set,
shortcut the read.
* io/read.c (read_a) (read_x): Clear the flag for character reads and
reset it after the reads.
From-SVN: r108271
Ulrich Weigand [Fri, 9 Dec 2005 01:00:55 +0000 (01:00 +0000)]
s390.c (s390_function_ok_for_sibcall): Use targetm.binds_local_p to check for local function calls.
* config/s390/s390.c (s390_function_ok_for_sibcall): Use
targetm.binds_local_p to check for local function calls.
From-SVN: r108269
GCC Administrator [Fri, 9 Dec 2005 00:17:28 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r108265
Alan Modra [Thu, 8 Dec 2005 23:43:40 +0000 (23:43 +0000)]
re PR debug/24908 (ICE in dwarf2out for cpu2000 with -funroll-loops -fno-tree-copyrename)
PR debug/24908
* dwarf2out.c (dwarf2out_frame_debug_expr): Don't assert that
call_used_regs can't be used to save reg in another reg.
From-SVN: r108257
Jakub Jelinek [Thu, 8 Dec 2005 21:50:38 +0000 (22:50 +0100)]
re PR c++/19317 (removing a temporary return value when we cannot)
PR c++/19317
* g++.dg/opt/pr19317-1.C: New test.
* g++.dg/opt/pr19317-2.C: New test.
* g++.dg/opt/pr19317-3.C: New test.
From-SVN: r108247
Jakub Jelinek [Thu, 8 Dec 2005 21:49:17 +0000 (22:49 +0100)]
re PR target/19005 (Error: bad register name `%sil')
PR target/19005
* gcc.c-torture/execute/pr19005.c: New test.
From-SVN: r108246
Jakub Jelinek [Thu, 8 Dec 2005 21:47:10 +0000 (22:47 +0100)]
re PR target/17828 (-O2 -fPIC doesn't work with switches in linkonce functions and new binutils)
PR target/17828
* g++.old-deja/g++.other/comdat5.C: New test.
* g++.old-deja/g++.other/comdat5-aux.cc: New file.
From-SVN: r108245
Jakub Jelinek [Thu, 8 Dec 2005 21:45:22 +0000 (22:45 +0100)]
struct-layout-1.exp: New file.
* g++.dg/compat/struct-layout-1.exp: New file.
* g++.dg/compat/struct-layout-1.h: New.
* g++.dg/compat/struct-layout-1_generate.c: New.
* g++.dg/compat/struct-layout-1_x1.h: New.
* g++.dg/compat/struct-layout-1_x2.h: New.
* g++.dg/compat/struct-layout-1_y1.h: New.
* g++.dg/compat/struct-layout-1_y2.h: New.
From-SVN: r108244
Jakub Jelinek [Thu, 8 Dec 2005 21:44:27 +0000 (22:44 +0100)]
* gcc.dg/
20050330-2.c: New test.
From-SVN: r108243
François-Xavier Coudert [Thu, 8 Dec 2005 17:16:41 +0000 (17:16 +0000)]
* ChangeLog: correct typo in date.
From-SVN: r108242
Erik Edelmann [Thu, 8 Dec 2005 16:56:10 +0000 (16:56 +0000)]
re PR fortran/25292 (ASSOCIATED( func() ) rejected ?)
fortran/
2005-12-08 Erik Edelmann <eedelman@gcc.gnu.org>
PR fortran/25292
* check.c (gfc_check_associated): Allow function results
as actual arguments to ASSOCIATED. Moved a misplaced
comment.
testsuite/
2005-12-08 Erik Edelmann <eedelman@gcc.gnu.org>
PR fortran/25292
* gfortran.dg/associated_1.f90: New.
From-SVN: r108238
Volker Reichelt [Thu, 8 Dec 2005 15:46:09 +0000 (15:46 +0000)]
ipa-type-escape.c (analyze_variable): Use gcc_assert instead of abort.
* ipa-type-escape.c (analyze_variable): Use gcc_assert instead of
abort.
* except.c (output_ttype): Likewise.
* tree-object-size.c (collect_object_sizes_for): Likewise.
(check_for_plus_in_loops_1): Likewise.
(check_for_plus_in_loops): Likewise.
(compute_object_sizes): Use gcc_unreachable instead of abort.
Co-Authored-By: Christophe Jaillet <christophe.jaillet@wanadoo.fr>
From-SVN: r108237
Andrew Haley [Thu, 8 Dec 2005 15:32:44 +0000 (15:32 +0000)]
re PR libgcj/25265 (linking BC-compiled classes with incompatible changes)
2005-12-08 Andrew Haley <aph@redhat.com>
PR libgcj/25265
* java-tree.h (enum java_tree_index): Add JTI_SOFT_NOSUCHFIELD_NODE.
(soft_abstractmethod_node): New.
* expr.c (build_field_ref): Add in-line check for missing field.
* decl.c (java_init_decl_processing): Add soft_nosuchfield_node.
2005-12-08 Andrew Haley <aph@redhat.com>
PR libgcj/25265
* java/lang/Object.h (throwNoSuchMethodError): New method.
* java/lang/Object.java (throwNoSuchMethodError): New method.
* include/jvm.h (_Jv_ThrowNoSuchFieldError): Declare.
* link.cc (_Jv_ThrowNoSuchFieldError): New.
(link_symbol_table): Don't throw a NoSuchFieldError if a field is
missing. Instead, set the otable entry to zero.
(link_symbol_table): If we don't find a nonstatic method, insert
the vtable offset of Object.throwNoSuchMethodError() into the
otable.
From-SVN: r108235
Andrew Haley [Thu, 8 Dec 2005 14:19:13 +0000 (14:19 +0000)]
Object.h (throwNoSuchMethodError): New method.
2005-12-08 Andrew Haley <aph@redhat.com>
* java/lang/Object.h (throwNoSuchMethodError): New method.
* java/lang/Object.java (throwNoSuchMethodError): New method.
* include/jvm.h (_Jv_ThrowNoSuchFieldError): Declare.
* link.cc (_Jv_ThrowNoSuchFieldError): New.
(link_symbol_table): Don't throw a NoSuchFieldError if a field is
missing. Instead, set the otable entry to zero.
(link_symbol_table): If we don't find a nonstatic method, insert
the vtable offset of Object.throwNoSuchMethodError() into the
otable.
From-SVN: r108231
Andrew Haley [Thu, 8 Dec 2005 13:52:39 +0000 (13:52 +0000)]
java-tree.h (enum java_tree_index): Add JTI_SOFT_NOSUCHFIELD_NODE.
2005-12-08 Andrew Haley <aph@redhat.com>
* java-tree.h (enum java_tree_index): Add JTI_SOFT_NOSUCHFIELD_NODE.
(soft_abstractmethod_node): New.
* expr.c (build_field_ref): Add in-line check for missing field.
* decl.c (java_init_decl_processing): Add soft_nosuchfield_node.
2005-12-08 Andrew Haley <aph@redhat.com>
* java/lang/Object.h (throwNoSuchMethodError): New method.
* java/lang/Object.java (throwNoSuchMethodError): New method.
* include/jvm.h (_Jv_ThrowNoSuchFieldError): Declare.
* link.cc (_Jv_ThrowNoSuchFieldError): New.
(link_symbol_table): Don't throw a NoSuchFieldError if a field is
missing. Instead, set the otable entry to zero.
(link_symbol_table): If we don't find a nonstatic method, insert
the vtable offset of Object.throwNoSuchMethodError() into the
otable.
[[Split portion of a mixed commit.]]
From-SVN: r108230.2
Nathan Sidwell [Thu, 8 Dec 2005 13:46:18 +0000 (13:46 +0000)]
ms1.md (UNSPEC_LOOP): New constant.
* config/ms1/ms1.md (UNSPEC_LOOP): New constant.
(loop_end, loop_init, doloop_end): New insns.
* config/ms1/ms1.h (LOOP_FIRST, LOOP_LAST): New.
(SPECIAL_REG_FIRST, FIRST_PSEUDO_REGISTER): Adjust.
(FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
(REG_CLASS_CONTENTS, REGISTER_NAMES): Adjust.
* config/ms1/ms1.c: #include basic-block.h
(struct machine_function): Add has_loops field.
(ms1_add_loop): New.
(MAX_LOOP_DEPTH, MAX_LOO_LENGTH): New.
(struct loop_info, struct loop_work): New.
(ms1_loop_nesting, ms1_block_length, ms1_scan_loop): New workers.
(ms1_reorg_loops): New loop optimization.
(ms1_machine_reorg): Call it.
* config/ms1/ms1-protos.h (ms1_add_loop): Declare.
From-SVN: r108229
Paolo Carlini [Thu, 8 Dec 2005 11:32:37 +0000 (11:32 +0000)]
re PR libstdc++/24617 (vector vs __erase_at_end)
2005-12-08 Paolo Carlini <pcarlini@suse.de>
* include/bits/stl_vector.h (vector<>::size, resize, capacity,
operator[]): Avoid troubles with ADL, user defined operators
and __normal_iterator.
(_M_erase_at_end): Fix to take a pointer.
(clear): Adjust call.
* include/bits/vector.tcc (vector<>::insert(iterator, const
value_type&), erase(iterator, iterator), operator=(const
vector<>&), _M_assign_aux(input_iterator_tag), _M_insert_aux,
_M_fill_insert, _M_range_insert): Likewise.
(_M_fill_assign, _M_assign_aux(forward_iterator_tag)): Adjust
_M_erase_at_end call.
* testsuite/23_containers/vector/types/1.cc: New.
2005-12-08 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/24617
* include/bits/stl_vector.h (vector<>::_M_erase_at_end): New.
(vector<>::clear, resize): Use it.
* include/bits/vector.tcc (vector<>::erase(iterator, iterator),
_M_fill_assign, _M_assign_aux): Likewise.
* testsuite/23_containers/vector/modifiers/erase/1.cc: New.
From-SVN: r108227
Zdenek Dvorak [Thu, 8 Dec 2005 09:34:26 +0000 (10:34 +0100)]
re PR middle-end/25248 (2.6.15-rc4 arch/powerpc/mm/hash_utils_64.c miscompiled)
PR tree-optimization/25248
* tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Do not use
evolution_of_loop from the failed attempt. Remove handling
of MULT_EXPR.
From-SVN: r108225
Eric Botcazou [Thu, 8 Dec 2005 09:29:54 +0000 (10:29 +0100)]
vect-5.f90: Expect alignment forcing only on ILP32 vect_no_align platforms.
* gfortran.dg/vect/vect-5.f90: Expect alignment forcing only on
ILP32 vect_no_align platforms.
From-SVN: r108223
Théodore Papadopoulo [Thu, 8 Dec 2005 09:09:08 +0000 (09:09 +0000)]
call.c (build_conditional_expr): Print types in error messages.
2005-12-08 Théodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
* call.c (build_conditional_expr): Print types in error
messages.
From-SVN: r108222
Gabriel Dos Reis [Thu, 8 Dec 2005 09:01:22 +0000 (09:01 +0000)]
* tree.h (DECL_EXTERNAL): Clarify documentation.
From-SVN: r108221
Andreas Krebbel [Thu, 8 Dec 2005 08:56:24 +0000 (08:56 +0000)]
re PR target/25268 (ICE on lshrdi3_31 pattern)
2005-12-08 Andreas Krebbel <krebbel1@de.ibm.com>
Jakub Jelinek <jakub@redhat.com>
PR target/25268
* config/s390/s390.c (s390_decompose_shift_count): Remove BITS
argument. Don't drop outer ANDs.
(s390_extra_constraint_str, print_shift_count_operand): Adjust callers.
* config/s390/s390-protos.h (s390_decompose_shift_count): Adjust
prototype.
* config/s390/predicates.md (setmem_operand): Remove.
(shift_count_operand): Rename to...
(shift_count_or_setmem_operand): ... this. Adjust
s390_decompose_shift_count caller.
* config/s390/s390.md (<shift>di3_31_and, <shift>di3_64_and,
ashrdi3_cc_31_and, ashrdi3_cconly_31_and, ashrdi3_31_and,
ashrdi3_cc_64_and, ashrdi3_cconly_64_and, ashrdi3_64_and,
<shift>si3_and, ashrsi3_cc_and, ashrsi3_cconly_and, ashrsi3_and,
rotl<mode>3_and, setmem_long_and): New insns.
(<shift>di3_31, <shift>di3_64, ashrdi3_cc_31, ashrdi3_cconly_31,
ashrdi3_31, ashrdi3_cc_64, ashrdi3_cconly_64, ashrdi3_64,
<shift>si3, ashrsi3_cc, ashrsi3_cconly, ashrsi3, rotl<mode>3,
<shift>di3, ashrdi3): Use shift_count_or_setmem_operand instead
of shift_count_operand.
(setmem_long): Use shift_count_or_setmem_operand instead of
setmem_operand.
2005-12-08 Andreas Krebbel <krebbel1@de.ibm.com>
Jakub Jelinek <jakub@redhat.com>
PR target/25268
* gcc.c-torture/compile/
20051207-1.c: New test.
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r108220
Daniel Jacobowitz [Thu, 8 Dec 2005 06:40:37 +0000 (06:40 +0000)]
Makefile.in (ALL_GTFILES_H): Replace sed statement with more portable tr expression.
2005-12-08 Daniel Jacobowitz <dan@codesourcery.com>
Andreas Tobler <a.tobler@schweiz.ch>
* Makefile.in (ALL_GTFILES_H): Replace sed statement with more portable
tr expression.
Co-Authored-By: Andreas Tobler <a.tobler@schweiz.ch>
From-SVN: r108215
Kaveh R. Ghazi [Thu, 8 Dec 2005 01:26:45 +0000 (01:26 +0000)]
i386-1.C, [...]: Also test on x86_64.
2005-12-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* g++.dg/other/i386-1.C, gcc.c-torture/execute/990413-2.x,
gcc.dg/torture/pr18582-1.c,
gcc.target/i386/attributes-error.c: Also test on x86_64.
* gcc.dg/pr18928-1.c: Test on all targets supporting pic.
From-SVN: r108209
GCC Administrator [Thu, 8 Dec 2005 00:17:36 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r108205
Paolo Carlini [Wed, 7 Dec 2005 23:51:31 +0000 (23:51 +0000)]
configopts.html ([--enable-libstdcxx-allocator]): Mention the SGI pooled allocator.
2005-12-07 Paolo Carlini <pcarlini@suse.de>
* docs/html/configopts.html ([--enable-libstdcxx-allocator]):
Mention the SGI pooled allocator.
From-SVN: r108197
J"orn Rennecke [Wed, 7 Dec 2005 23:49:43 +0000 (23:49 +0000)]
* expr.c (force_operand): Use convert_to_mode for conversions.
From-SVN: r108196
J"orn Rennecke [Wed, 7 Dec 2005 23:41:19 +0000 (23:41 +0000)]
reload.h (reg_equiv_invariant): Declare.
2005-12-07 J"orn Rennecke <joern.rennecke@st.com>
* reload.h (reg_equiv_invariant): Declare.
* reload.c (refers_to_regno_for_reload_p): Allow R to be a pseudo
register also when reg_equiv_invariant[R] is set.
From-SVN: r108195
Volker Reichelt [Wed, 7 Dec 2005 21:55:19 +0000 (21:55 +0000)]
* expr.c (cxx_expand_expr): Call gcc_unreachable instead of abort.
From-SVN: r108193
Volker Reichelt [Wed, 7 Dec 2005 21:50:00 +0000 (21:50 +0000)]
* cp-gimplify.c (gimplify_cp_loop): Use fold_build3.
From-SVN: r108192
Richard Sandiford [Wed, 7 Dec 2005 21:47:27 +0000 (21:47 +0000)]
darwin.h: Guard section variables with #ifndef USED_FOR_TARGET.
2005-12-07 Richard Sandiford <richard@codesourcery.com>
Andreas Tobler <a.tobler@schweiz.ch>
* config/darwin.h: Guard section variables with #ifndef USED_FOR_TARGET.
Co-Authored-By: Andreas Tobler <a.tobler@schweiz.ch>
From-SVN: r108191
Ben Elliston [Wed, 7 Dec 2005 21:38:02 +0000 (21:38 +0000)]
* newcvsroot: Remove.
From-SVN: r108190
Volker Reichelt [Wed, 7 Dec 2005 21:16:21 +0000 (21:16 +0000)]
re PR c++/19397 (ICE with invalid typedef)
PR c++/19397
* g++.dg/template/typedef3.C: New test.
PR c++/19762
PR c++/19764
* g++.dg/template/dtor3.C: Fix error markers.
From-SVN: r108187
Daniel Berlin [Wed, 7 Dec 2005 20:24:09 +0000 (20:24 +0000)]
tree-ssa-pre.c (bitmap_set_and): New function.
2005-12-07 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-pre.c (bitmap_set_and): New function.
(bitmap_set_and_compl): New function.
(bitmap_set_empty_p): New function.
(insert_extra_phis): New function.
(compute_avail): Use insert_extra_phis.
From-SVN: r108183
Adrian Straetling [Wed, 7 Dec 2005 20:01:30 +0000 (20:01 +0000)]
s390.c (s390_expand_atomic): New function.
2005-12-07 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.c (s390_expand_atomic): New function.
Adjust comment of helper functions.
* config/s390/s390-protos.h (s390_expand_atomic): Declare.
* config/s390/s390.md ("ATOMIC"): New code macro.
("atomic"): Corresponding new code attribute.
("sync_lock_test_and_set[hq]i",
"sync_{new_,old_,}{and,ior,xor,add,sub,nand}[hq]i"): New pattern.
From-SVN: r108180
Adrian Straetling [Wed, 7 Dec 2005 19:56:32 +0000 (19:56 +0000)]
s390.c (s390_expand_mask_and_shift, [...]): New.
2005-12-07 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.c (s390_expand_mask_and_shift,
struct alignment_context, init_alignment_context,
s390_expand_cs_hqi): New.
* config/s390/s390-protos.h (s390_expand_cs_hqi): Declare.
* config/s390/s390.md ("sync_compare_and_swaphi",
"sync_compare_and_swapqi"): New pattern.
* lib/target-supports.exp (check_effective_target_sync_char_short):
Add s390*.
From-SVN: r108178
Adrian Straetling [Wed, 7 Dec 2005 19:41:37 +0000 (19:41 +0000)]
Fix incorrect dates in ChangeLog.
From-SVN: r108175
Daniel Berlin [Wed, 7 Dec 2005 16:39:33 +0000 (16:39 +0000)]
re PR tree-optimization/25291 (ICE in tree-check add_call_clobber_ops)
2005-12-07 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/25291
* tree-ssa-operands.c (add_call_clobber_ops): Remove
redundant and crashing check.
From-SVN: r108168
Alan Modra [Wed, 7 Dec 2005 16:07:08 +0000 (16:07 +0000)]
re PR target/25212 (unrecognizable insn for facerec with odd optimization set)
PR target/25212
* config/rs6000/rs6000.c (legitimate_indexed_address_p): Relax
tests further when !strict && reload_in_progress.
(print_operand): Check that both operands of indexed address are regs.
(print_operand_address): Likewise.
* config/rs6000/rs6000.h (INT_REG_OK_FOR_INDEX_P): Simplify.
(INT_REG_OK_FOR_BASE_P): Correct.
From-SVN: r108167
Thiemo Seufer [Wed, 7 Dec 2005 14:56:38 +0000 (14:56 +0000)]
ffitarget.h: Remove obsolete sgidefs.h include.
2005-12-07 Thiemo Seufer <ths@networkno.de>
* src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
missing parentheses.
* src/mips/o32.S (ffi_call_O32): Code formatting. Define
and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
(ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
FA_0_0_OFF2.
* src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
endianness bugs.
(ffi_prep_closure): Improve trampoline instruction scheduling.
(ffi_closure_mips_inner_O32): Fix endianness bugs.
From-SVN: r108165
J"orn Rennecke [Wed, 7 Dec 2005 13:31:41 +0000 (13:31 +0000)]
Preparation for PR rtl-optimization/20070 / part1
2005-12-07 J"orn Rennecke <joern.rennecke@st.com>
Preparation for PR rtl-optimization/20070 / part1
* basic-block.h (insns_match_p, flow_find_cross_jump): Declare.
* cfgcleanup.c (condjump_equiv_p): New function, broken out of
outgoing_edges_match.
(outgoing_edges_match): Use condjump_equiv_p.
(merge_memattrs, insns_match_p, flow_find_cross_jump): Move from here
into..
* struct-equiv.c: New file.
(death_notes_match_p) New function, broken out of insns_match_p.
* Makefile.in (OBJS-common): Add struct-equiv.o.
(struct-equiv.o): New target.
From-SVN: r108164
Richard Sandiford [Wed, 7 Dec 2005 13:25:08 +0000 (13:25 +0000)]
coretypes.h: Revert previous change.
* coretypes.h: Revert previous change.
* config/darwin.h: Revert previous reversion.
* config/avr/avr.h (progmem_section): Guard with #ifndef IN_LIBGCC2.
From-SVN: r108163
Richard Sandiford [Wed, 7 Dec 2005 11:52:28 +0000 (11:52 +0000)]
coretypes.h (section): Provide dummy definition for target files.
* coretypes.h (section): Provide dummy definition for target files.
* config/darwin.h: Revert previous change.
From-SVN: r108159
Rafael Ávila de Espíndola [Wed, 7 Dec 2005 11:40:30 +0000 (22:10 +1030)]
sourcebuild.texi (all.build, [...]): Remove.
gcc/
* doc/sourcebuild.texi (all.build, install-normal): Remove.
* configure.ac: Remove all.build and install-normal from target_list
* configure: Regenerate.
* Makefile.in (install): Don't depend on install-normal.
gcc/java/
* Make-lang.in (java.all.build, java.install-normal): Remove.
gcc/objc/
* Make-lang.in (objc.all.build, objc.install-normal): Remove.
gcc/objcp/
* Make-lang.in (obj-c++.all.build, obj-c++.install-normal): Remove.
gcc/cp/
* Make-lang.in (c++.all.build, c++.install-normal): Remove.
gcc/ada/
* Make-lang.in (ada.install-normal): Remove.
gcc/fortran/
* Make-lang.in (fortran.all.build, fortran.install-normal): Remove.
gcc/treelang/
* Make-lang.in (treelang.all.build, treelang.install-normal): Remove.
From-SVN: r108158
Rafael Ávila de Espíndola [Wed, 7 Dec 2005 11:24:48 +0000 (21:54 +1030)]
Makefile.in: Document the use of stamps.
* Makefile.in: Document the use of stamps.
From-SVN: r108156
Alan Modra [Wed, 7 Dec 2005 11:22:18 +0000 (21:52 +1030)]
gty.texi: Remove instructions for adding a dependency on s-gtype.
gcc/
* doc/gty.texi: Remove instructions for adding a dependency on s-gtype.
* Makefile.in: Add code to compute some dependencies on s-gtype
automatically. Remove the declaration of those dependencies.
gcc/java/
* Make-lang.in: Remove all dependencies on s-gtype, except for
gt-java-parse.h.
gcc/objc/
* Make-lang.in: Remove all dependencies on s-gtype.
gcc/objcp/
* Make-lang.in: Remove all dependencies on s-gtype.
gcc/cp/
* Make-lang.in: Remove all dependencies on s-gtype.
gcc/ada/
* Make-lang.in: Remove all dependencies on s-gtype.
gcc/fortran/
* Make-lang.in: Remove all dependencies on s-gtype, except for
gt-fortran-trans.h.
gcc/treelang/
* Make-lang.in: Remove all dependencies on s-gtype.
From-SVN: r108155
Richard Sandiford [Wed, 7 Dec 2005 09:43:39 +0000 (09:43 +0000)]
reload.c (push_secondary_reload): Fix typo: s/insn_constraint/scratch_constraint/.
* gcc/reload.c (push_secondary_reload): Fix typo:
s/insn_constraint/scratch_constraint/.
From-SVN: r108154
Richard Sandiford [Wed, 7 Dec 2005 09:17:01 +0000 (09:17 +0000)]
* config/darwin.h: Guard section variables with #ifndef IN_LIBGCC2.
From-SVN: r108153
Richard Sandiford [Wed, 7 Dec 2005 07:53:14 +0000 (07:53 +0000)]
alpha.c (alpha_start_function): Use switch_to_section.
* config/alpha/alpha.c (alpha_start_function): Use switch_to_section.
(alpha_elf_select_rtx_section): Return the selected section rather
than emitting assembly code.
(alpha_write_linkage): Emit a ".link" directive directly and then
set in_section to NULL.
(vms_asm_out_constructor): Use switch_to_section.
(vms_asm_out_destructor): Likewise.
(unicosmk_output_common): Set in_section to NULL instead of calling
the dummy common_section function.
(unicosmk_text_section): Delete in favor of...
(unicosmk_output_text_section_asm_op): ...this new function.
(unicosmk_data_section): Delete in favor of...
(unicosmk_output_data_section_asm_op): ...this new function.
(unicosmk_init_sections): New function.
(unicosmk_output_deferred_case_vectors): Use switch_to_section.
(unicosmk_output_ssib): Set in_section to NULL instead of calling
the dummy ssib_section function.
(unicosmk_section_buf): Delete.
* config/alpha/alpha-protos.h (unicosmk_text_section): Delete.
(unicosmk_data_section): Delete.
* config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, sbss_section, sdata_section)
(SECTION_FUNCTION_TEMPLATE): Delete.
* config/alpha/unicosmk.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP)
(READONLY_DATA_SECTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
(common_section, COMMON_SECTION, ssib_section, SSIB_SECTION): Delete.
(ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
(TARGET_ASM_INIT_SECTIONS): Define.
* config/alpha/vms.h (LINK_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP)
(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
(link_section, literals_section): Delete.
(ASM_OUTPUT_DEF): Emit the ".literal" directive directly and then
set in_section to NULL.
* config/arm/aof.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Delete.
(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, ZERO_INIT_SECTION): Delete.
(COMMON_SECTION): Delete.
(TARGET_ASM_INIT_SECTIONS): Define.
(ASM_OUTPUT_COMMON): Set in_section to NULL rather than calling
the dummy common_section function.
* config/arm/aout.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
* config/arm/arm.c (get_jump_table_size): Use pointer comparison
between readonly_data_section and text_section to check whether
read-only data is being put in the text section.
(arm_output_function_epilogue): Use switch_to_section.
(arm_elf_asm_constructor): Likewise.
(thumb_call_via_reg): Replace call to in_text_section with
a comparison between in_section and text_section.
(arm_file_end): Use switch_to_section.
(aof_text_section): Delete in favor of...
(aof_output_text_section_asm_op): ...this new function.
(aof_data_section): Delete in favor of...
(aof_output_data_section_asm_op): ...this new function.
(aof_asm_init_sections): New function.
(zero_init_section): Moved from config/arm/aof.h.
(aof_dump_imports, aof_file_start): Use switch_to_section.
* config/arm/arm.h (thumb_call_via_label): Update comment.
* config/arm/arm-protos.h (aof_text_section, aof_data_section): Delete.
(common_section): Delete.
* config/arm/pe.h (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
(ASM_DECLARE_OBJECT_NAME): Update the type of save_section. Use the
global switch_to_section function instead of the old port-local one.
(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION)
(SWITCH_TO_SECTION_FUNCTION): Delete.
(drectve_section): Redefine as a macro.
* config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS):
(ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use get_named_section and
switch_to_section.
* config/avr/avr.c (progmem_section): New variable.
(avr_output_progmem_section_asm_op): New function.
(avr_asm_init_sections): New function.
(avr_output_addr_vec_elt): Use switch_to_section.
* config/avr/avr.h (progmem_section): Declare.
(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
(READONLY_DATA_SECTION): Delete.
(TARGET_ASM_INIT_SECTIONS): Define.
(ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
* config/avr/avr-protos.h (progmem_section): Delete.
* config/bfin/bfin.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
* config/c4x/c4x.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
(INIT_SECTION_FUNCTION, FINI_SECTION_FUNCTION): Delete.
* config/darwin-sections.def: New file.
* config/darwin.c: Define all sections in darwin-sections.def.
(output_objc_section_asm_op, darwin_init_sections): New functions.
(machopic_output_indirection): Use switch_to_section.
(machopic_select_section): Return the selected section rather than
emitting assembly code. Replace the static function table with
inline conditional expressions. Update the tests of last_text_section
and move them into the FUNCTION_DECL block.
(machopic_select_rtx_section): Return the selected section rather than
emitting assembly code.
(machopic_asm_out_constructor, machopic_asm_out_destructor)
(darwin_file_end): Use switch_to_section.
* config/darwin.h: Use darwin-sections.def to declare sections.
(INIT_SECTION_ASM_OP): Remove empty definition.
(HAS_INIT_SECTION): Define this instead.
(SECTION_FUNCTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
(READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
(TARGET_ASM_EH_FRAME_SECTION): Delete.
(TARGET_ASM_INIT_SECTIONS): Define.
* config/darwin-protos.h (darwin_init_sections): Declare.
(machopic_picsymbol_stub_section, machopic_picsymbol_stub1_section)
(machopic_symbol_stub_section, machopic_symbol_stub1_section): Delete.
(machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
(constructor_section, destructor_section, mod_init_section): Delete.
(mod_term_section): Delete.
(darwin_exception_section, darwin_eh_frame_section): Delete.
(machopic_select_section): Return a section.
(machopic_select_rtx_section): Likewise.
(text_coal_section, text_unlikely_section, text_unlikely_coal_section)
(const_section, const_coal_section, const_data_section): Delete.
(const_data_coal_section, data_coal_section, cstring_section): Delete.
(literal4_section, literal8_section, constructor_section): Delete.
(mod_init_section, mod_term_section, destructor_section): Delete.
(objc_class_section, objc_meta_class_section, objc_category_section)
(objc_class_vars_section, objc_instance_vars_section): Delete.
(objc_cls_meth_section, objc_inst_meth_section): Delete.
(objc_cat_cls_meth_section, objc_cat_inst_meth_section): Delete.
(objc_selector_refs_section, objc_selector_fixup_section): Delete.
(objc_symbols_section, objc_module_info_section): Delete.
(objc_image_info_section, objc_protocol_section): Delete.
(objc_string_object_section, objc_constant_string_object_section)
(objc_class_names_section, objc_meth_var_names_section): Delete.
(objc_meth_var_types_section, objc_cls_refs_section): Delete.
(machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
(machopic_symbol_stub_section, machopic_picsymbol_stub_section)
(darwin_exception_section, darwin_eh_frame_section): Delete.
* config/t-darwin (darwin.o): Depend on config/darwin-sections.def.
* config/frv/frv.c (frv_asm_out_constructor): Use switch_to_section.
(frv_asm_out_destructor): Likewise.
* config/frv/frv.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
(SDATA_SECTION_FUNCTION, FIXUP_SECTION_FUNCTION): Delete.
(ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use switch_to_section and
get_named_section.
(ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
* config/frv/frv-protos.h (fixup_section, sdata_section, sbss_section)
(data_section): Delete.
* config/i386/cygming.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
(DRECTVE_SECTION_FUNCTION): Delete.
(drectve_section): Redefine as a macro that sets in_section after
emitting the directive.
(SWITCH_TO_SECTION_FUNCTION): Delete.
* config/i386/darwin.h (ASM_OUTPUT_ALIGN): Replace call to
in_text_section with comparison between in_section and text_section.
* config/i386/i386.c (x86_64_elf_select_section): Return the section
rather than emitting assembly code. Use get_named_section.
(x86_output_aligned_bss, ix86_file_end): Use switch_to_section and
get_named_section.
(machopic_output_stub): Use switch_to_section.
* config/i386/nwld.c (nwld_named_section_asm_out_constructor)
(nwld_named_section_asm_out_destructor): Use get_section and
switch_to_section.
* config/ia64/ia64.c (ia64_select_rtx_section): Return the section
rather than emitting assembly code.
(ia64_rwreloc_select_section): Likewise.
(ia64_rwreloc_select_rtx_section): Likewise.
* config/ia64/ia64-protos.h (sdata_section, sbss_section): Delete.
* config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
switch_to_section.
(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
(SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Delete.
* config/iq2000/iq2000.c (iq2000_select_rtx_section): Return the
section rather than emitting assembly code.
(iq2000_select_section): Likewise.
* config/iq2000/iq2000.h (rdata_section, sdata_section): Delete.
(sbss_section): Delete.
* config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Use switch_to_section
and get_named_section.
* config/m32r/m32r-protos.h (sbss_section, sdata_section): Delete.
* config/mcore/mcore-elf.h (EXPORTS_SECTION_ASM_OP): Delete.
(SUBTARGET_EXTRA_SECTIONS, SUBTARGET_EXTRA_SECTION_FUNCTIONS): Delete.
(EXPORT_SECTION_FUNCTION, SUBTARGET_SWITCH_SECTIONS): Delete.
(MCORE_EXPORT_NAME): Emit the exports directive directly, then set
in_section to NULL.
(ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
(ASM_DECLARE_OBJECT_NAME): Update the type of save_section. Use the
global switch_to_section function instead of the old port-local one.
* config/mcore/mcore.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
(SWITCH_SECTION_FUNCTION): Delete.
* config/mcore/mcore-pe.h (SUBTARGET_SWITCH_SECTIONS): Delete.
(DRECTVE_SECTION_ASM_OP, SUBTARGET_EXTRA_SECTIONS): Delete.
(SUBTARGET_EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION): Delete.
(MCORE_EXPORT_NAME): Emit ".section .drectve" directly, then set
in_section to NULL.
(ASM_DECLARE_OBJECT_NAME): Update the type of save_section. Use the
global switch_to_section function instead of the old port-local one.
(ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
* config/mips/mips.c (mips_file_start): Update comment.
(mips_output_aligned_bss): Use switch_to_section and get_named_section.
(mips_output_aligned_decl_common): Use switch_to_section.
(mips_select_rtx_section): Return the section rather than emitting
assembly code. Use get_named_section.
(mips_function_rodata_section: Likewise get_section.
(build_mips16_function_stub): Use switch_to_section.
* config/mips/mips.h (ASM_OUTPUT_IDENT): Use switch_to_section.
(SDATA_SECTION_ASM_OP): Delete.
* config/mips/vxworks.h (EXTRA_SECTIONS): Delete.
(EXTRA_SECTION_FUNCTIONS): Delete.
* config/mmix/mmix.c (mmix_file_start, mmix_file_end)
(mmix_asm_output_aligned_local): Use switch_to_section.
* config/pa/pa.c (som_readonly_data_section, som_one_only_data_section)
(som_one_only_readonly_data_section): New variables.
(pa_output_function_epilogue): Set in_section to NULL instead of
calling forget_section.
(output_deferred_plabels): Use select_section.
(pa_asm_output_mi_thunk): Likewise. Set in_section to NULL instead
of calling forget_section.
(pa_asm_output_aligned_bss, pa_asm_output_aligned_common)
(pa_asm_output_aligned_local): Use select_section.
(som_text_section_asm_op): Delete in favor of...
(som_output_text_section_asm_op): ...this new function.
(pa_som_asm_init_sections): New function.
(pa_select_section): Return the section rather than emitting
assembly code.
* config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
(SOM_READONLY_DATA_SECTION_FUNCTION): Delete.
(SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION): Delete.
(SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): Delete.
* config/pa/pa-protos.h (som_text_section_asm_op): Delete.
(som_readonly_data_section, som_one_only_readonly_data_section)
(som_one_only_data_section, forget_section): Delete.
* config/pa/som.h (TEXT_SECTION_ASM_OP): Delete.
(TARGET_ASM_INIT_SECTIONS): Define.
(READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
* config/rs6000/rs6000.c (read_only_data_section): New variable.
(private_data_section, read_only_private_data_section): New variables.
(sdata2_section, toc_section): New variables.
(rs6000_file_start): Use switch_to_section.
(rs6000_assemble_integer): Use comparisons against in_section
instead of calling in_toc_section and in_text_section. Use
unlikely_text_section_p.
(rs6000_elf_output_toc_section_asm_op): New function, derived
from the old rs6000/sysv4.h toc_section function.
(rs6000_elf_asm_init_sections): New function.
(rs6000_elf_select_rtx_section, rs6000_elf_select_section): Return
the section rather than emitting assembly code.
(machopic_output_stub): Use switch_to_section.
(toc_section): Delete dummy function.
(rs6000_elf_asm_out_constructor, rs6000_elf_asm_out_destructor): Use
switch_to_section and get_section.
(rs6000_xcoff_output_readonly_section_asm_op): New function.
(rs6000_xcoff_output_readwrite_section_asm_op): New function.
(rs6000_xcoff_output_toc_section_asm_op): New function, derived from
the old rs6000/xcoff.h toc_section function.
(rs6000_xcoff_asm_init_sections): New function.
(rs6000_xcoff_select_section, rs6000_xcoff_select_rtx_section): Return
the section rather than emitting assembly code.
(rs6000_xcoff_file_start): Use switch_to_section.
(rs6000_xcoff_file_end): Likewise.
* config/rs6000/rs6000-protos.h (toc_section, sdata_section): Delete.
(sdata2_section, sbss_section, private_data_section): Delete.
(read_only_data_section, read_only_private_data_section): Delete.
* config/rs6000/sysv4.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
(TOC_SECTION_FUNCTION, SDATA_SECTION_FUNCTION, SDATA2_SECTION_FUNCTION)
(SBSS_SECTION_FUNCTION, INIT_SECTION_FUNCTION): Delete.
(FINI_SECTION_FUNCTION): Delete.
(TARGET_ASM_INIT_SECTIONS): Define.
(ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
* config/rs6000/xcoff.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
(READ_ONLY_DATA_SECTION_FUNCTION, PRIVATE_DATA_SECTION_FUNCTION)
(READ_ONLY_PRIVATE_DATA_SECTION_FUNCTION, TOC_SECTION_FUNCTION)
(READONLY_DATA_SECTION): Delete.
(TARGET_ASM_INIT_SECTIONS): Define.
(ASM_DECLARE_FUNCTION_NAME): Use switch_to_section. Set in_section
to NULL rather than no_section.
(TARGET_ASM_EXCEPTION_SECTION): Delete.
* config/sh/sh.c (sh_file_start): Use switch_to_section.
* config/sparc/sparc.c (emit_pic_helper): Use switch_to_section.
(sparc_output_deferred_case_vectors): Likewise. Remove argument
from call to current_function_section.
* config/stormy16/stormy16.c: Include ggc.h and gt-storm16.h.
(bss100_section): New variable.
(xstormy16_asm_output_aligned_common): Use switch_to_section.
(xstormy16_asm_init_sections): New function.
(xstormy16_asm_out_destructor, xstormy16_asm_out_constructor): Use
switch_to_section and get_section.
(xstormy16_output_addr_vec): Use switch_to_section. Remove argument
from calls to current_function_section.
* config/stormy16/stormy16.h (EXTRA_SECTIONS): Delete.
(XSTORMY16_SECTION_FUNCTION, EXTRA_SECTION_FUNCTIONS): Delete.
(TARGET_ASM_INIT_SECTIONS): Define.
* config/stormy16/stormy16-protos.h (bss100_section): Delete.
* config/svr3.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, INIT_SECTION_FUNCTION)
(FINI_SECTION_FUNCTION): Delete.
* config/v850/v850.c: Include gt-v850.h.
(rosdata_section, rozdata_section, tdata_section, zdata_section)
(zbss_section): New variables.
(v850_output_aligned_bss): Use switch_to_section.
(v850_asm_init_sections): New function.
(v850_select_section): Return the section rather than emitting
assembly code.
* config/v850/v850.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
(ZDATA_SECTION_ASM_OP, ZBSS_SECTION_ASM_OP, TDATA_SECTION_ASM_OP)
(ROSDATA_SECTION_ASM_OP, ROZDATA_SECTION_ASM_OP): Delete.
(TARGET_ASM_INIT_SECTIONS): Define.
* config/v850/v850-protos.h (sdata_section, rosdata_section): Delete.
(sbss_section, tdata_section, zdata_section, rozdata_section): Delete.
(zbss_section): Delete.
* config/vax/vaxv.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
* config/vx-common.h (vxworks_exception_section): Delete.
(TARGET_ASM_EXCEPTION_SECTION): Delete.
* config/xtensa/xtensa.c (xtensa_select_rtx_section): Return the
section rather than emitting assembly code.
* config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Use
switch_to_section.
* Makefile.in (GTFILES): Add $(srcdir)/output.h.
* coretypes.h (section): New union and typedef.
* dbxout.c (FORCE_TEXT): Use switch_to_section. Remove argument
from call to current_function_section.
(dbxout_function_end, dbxout_init, dbxout_source_file, dbxout_finish)
(dbxout_symbol_location): Use switch_to_section.
* dwarf2out.c (named_section_eh_frame_section): Delete, moving
most of the code into...
(default_eh_frame_section): ...here. Return a section.
(collect2_eh_frame_section): Delete, moving most of the code into..
(switch_to_eh_frame_section): ...this new function.
(debug_info_section, debug_abbrev_section, debug_aranges_section)
(debug_macinfo_section, debug_line_section, debug_loc_section)
(debug_pubnames_section, debug_str_section, debug_ranges_section): New
variables.
(output_call_frame_info): Call switch_to_eh_frame_section instead of
eh_frame_section. Use switch_to_section and get_section.
(dwarf2out_begin_prologue): Use switch_to_section.
(AT_string_form): Check the flags in debug_str_section instead of
DEBUG_STR_SECTION_FLAGS.
(output_comp_unit): Use switch_to_section, get_section, and
debug_info_section.
(output_line_info, secname_for_decl): Use unlikely_text_section_p.
(dwarf2out_begin_block): Use switch_to_section. Remove argument
from call to current_function_section.
(dwarf2out_var_location): Use unlikely_text_section_p.
(dwarf2out_source_line): Use switch_to_section. Remove argument
from call to current_function_section.
(dwarf2out_start_source_file, dwarf2out_end_source_file)
(dwarf2out_define, dwarf2out_undef: Use switch_to_section and
debug_macinfo_section.
(dwarf2out_init): Initialize the new section variables. Use them
instead of calls to named_section_flags. Use switch_to_section.
(output_indirect_string): Use switch_to_section and debug_str_section.
(dwarf2out_finish): Use switch_to_section and the new section
variables.
* except.c (default_exception_section): Return the section instead
of emitting assembly code.
(output_function_exception_table): Use the global exception_section
variable instead of the target hook. Use switch_to_section. Remove
argument from call to current_function_section.
* final.c (HAVE_READONLY_DATA_SECTION): Delete.
(shorten_branches): Use pointer comparisons to detect whether the
text section is the same as readonly_data_section.
(profile_function): Use switch_to_section. Remove argument from
call to current_function_section.
(final_scan_insn): Likewise. Update use of last_text_section.
* gengtype.c (open_base_files): Add an include of output.h.
* output.h (text_section, data_section, readonly_data_section)
(ctors_section, dtors_section, bss_section, init_section)
(fini_section, sdata_section): Turn into section pointers.
(in_text_section, in_unlikely_text_section, exports_section)
(drectve_section, named_section, mergeable_string_section)
(last_text_section_name): Delete.
(default_exception_section, default_eh_frame_section): Return sections.
(SECTION_DECLARED, SECTION_NAMED): New macros.
(SECTION_MACH_DEP): Bump value.
(section_common, named_section, unnamed_section): New structures.
(unnamed_section_callback): New typedef.
(section): New union.
(sbss_section, exception_section, eh_frame_section): New variables.
(in_section, last_text_section): Turn into section pointers.
(get_unnamed_section, get_section, get_named_section): New functions.
(mergeable_constant_section, function_section): Return a section.
(unlikely_text_section): Likewise.
(current_function_section): Likewise. Remove the decl argument.
(unlikely_text_section_p, switch_to_section): New functions.
(output_section_asm_op): New function.
(set_named_section_flags, named_section_flags, named_section_real)
(named_section_first_declaration): Delete.
(default_select_section, default_elf_select_section): Return a section.
(default_elf_select_section_1, default_function_rodata_section)
(default_no_function_rodata_section, default_select_rtx_section)
(default_elf_select_rtx_section): Likewise.
* rtl.h (in_data_section): Delete.
* sdbout.c (sdbout_one_type): Use switch_to_section.
* system.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Poison.
(READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Poison.
(TARGET_ASM_EH_FRAME_SECTION): Poison.
* target-def.h (TARGET_ASM_INIT_SECTIONS): New macro.
(TARGET_ASM_EXCEPTION_SECTION, TARGET_ASM_EH_FRAME_SECTION): Delete.
(TARGET_ASM_OUT): Update after above changes.
* target.h (init_sections): New hook.
(exception_section, eh_frame_section): Delete.
(select_section, select_rtx_section, function_rodata_section): Return
a section rather than emitting assembly code.
* varasm.c (text_section, data_section, readonly_data_section)
(ctors_section, dtors_section, bss_section, init_section)
(fini_section): Turn into section pointers.
(sdata_section, sbss_section, exception_section): New variables.
(eh_frame_section): New variable.
(in_section): Make global and turn into a section pointer.
(last_text_section): Turn into a section pointer.
(unnamed_sections): New variable.
(in_named_name, last_text_section_name): Delete.
(EXTRA_SECTION_FUNCTIONS): Delete.
(in_named_entry): Delete.
(section_htab): New variable, replacing...
(in_named_htab): ...this deleted variable.
(section_entry_eq, section_entry_hash): New functions, based on...
(in_named_entry_eq, in_named_entry_hash): ...these deleted functions.
(get_unnamed_section, get_section): New functions.
(unlikely_text_section): Return a section instead of emitting
assembly code.
(in_text_section, in_unlikely_text_section, in_data_section): Delete.
(get_named_section_flags, named_section_first_declaration): Delete.
(unlikely_text_section_p): New function.
(named_section_real, named_section): Delete.
(get_named_section): New function.
(asm_output_bss, asm_output_aligned_bss): Use switch_to_section.
(function_section): Return a section rather than emitting
assembly code.
(current_function_section): Likewise. Remove argument. Use
last_text_section if nonnull, otherwise use function_section.
(default_function_rodata_section): Return a section rather than
emitting assembly code. Use get_section.
(default_no_function_rodata_section): Return a section rather than
emitting assembly code.
(variable_section): Use switch_to_section and get_named_section.
(mergeable_string_section): Return a section rather than emitting
assembly code. Use get_section. Make static. Don't take special
countermeasures for empty strings.
(mergeable_constant_section): Return a section rather than emitting
assembly code. Use get_section.
(default_named_section_asm_out_destructor): Use switch_to_section
and get_section.
(default_dtor_section_asm_out_destructor): Use switch_to_section.
(default_named_section_asm_out_constructor): Use switch_to_section
and get_section.
(default_ctor_section_asm_out_constructor): Use switch_to_section.
(assemble_start_function): Likewise. Set last_text_section to
NULL rather than no_section. Change the type of save_section.
(assemble_zeros, assemble_variable): Use the section flags to detect
whether or not a section is text.
(assemble_static_space): Use switch_to_section.
(assemble_trampoline_template): Likewise.
(output_constant_def_contents): Use switch_to_section and
get_named_section.
(output_constant_pool_1): Use switch_to_section. Use the section
flags to see whether sections contain mergeable data.
(init_varasm_once): Initialize section_htab instead of in_named_htab.
Initialize new section variables. Call TARGET_ASM_INIT_SECTIONS.
(default_elf_asm_named_section): Use SECTION_DECLARED to detect
whether a section has already been declared.
(default_select_section, default_elf_select_section): Return a
section rather than emitting assembly code.
(default_elf_select_section_1): Likewise. Use bss_section for
SECCAT_BSS if nonnull. Use get_named_section.
(default_select_rtx_section): Return a section rather than
emitting assembly code.
(default_elf_select_rtx_section): Likewise. Use get_named_section.
(file_end_indicate_exec_stack): Use switch_to_section and get_section.
(output_section_asm_op, switch_to_section): New functions.
* vmsdbgout.c (vmsdbgout_finish): Use switch_to_section and
get_named_section.
* doc/tm.texi: Expand the introduction to the sections documentation.
(TRAMPOLINE_SECTION): Document new interface.
(SDATA_SECTION_ASM_OP): Document new macro.
(READONLY_DATA_SECTION): Delete.
(SDATA_SECTION_ASM_OP): Document new macro.
(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
(TARGET_ASM_INIT_SECTIONS): Document new hook.
(TARGET_ASM_SELECT_SECTION, TARGET_ASM_FUNCTION_RODATA_SECTION)
(TARGET_ASM_SELECT_RTX_SECTION): Adjust for new interface.
(TARGET_EXCEPTION_SECTION, TARGET_EH_FRAME_SECTION): Delete.
gcc/java/
* class.c (build_utf8_ref, emit_register_classes): Use
switch_to_section and get_section.
From-SVN: r108152
Alan Modra [Wed, 7 Dec 2005 07:02:35 +0000 (07:02 +0000)]
gcc.c (init_gcc_specs): Match braces inside conditionally compiled strings.
* gcc.c (init_gcc_specs): Match braces inside conditionally
compiled strings.
From-SVN: r108151
Adam Nemet [Wed, 7 Dec 2005 03:46:23 +0000 (03:46 +0000)]
* MAINTAINERS: Change email address.
From-SVN: r108149
Tom Tromey [Wed, 7 Dec 2005 00:31:58 +0000 (00:31 +0000)]
re PR java/25283 (gcj generates invalid signature)
PR java/25283:
* parse.y (patch_new_array_init): Revert previous patch.
(lookup_method_invoke): Use size-less array type when creating an
anonymous constructor.
From-SVN: r108143
GCC Administrator [Wed, 7 Dec 2005 00:17:27 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r108140
Jon Grimm [Tue, 6 Dec 2005 23:13:15 +0000 (23:13 +0000)]
cpplib.h (CPP_N_DFLOAT): New.
* include/cpplib.h (CPP_N_DFLOAT): New.
* expr.c (interpret_float_suffix): Identify df, dd, and dl
suffixes as decimal floating point constants.
(cpp_classify_number): Disallow hexadecimal DFP constants.
Co-Authored-By: Ben Elliston <bje@au.ibm.com>
From-SVN: r108133
Janis Johnson [Tue, 6 Dec 2005 20:50:27 +0000 (20:50 +0000)]
* lib/gcc-dg.exp (cleanup-dump): Remove options from test name.
From-SVN: r108129
Geoffrey Keating [Tue, 6 Dec 2005 20:06:35 +0000 (20:06 +0000)]
* config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): New.
From-SVN: r108128
Aldy Hernandez [Tue, 6 Dec 2005 19:45:00 +0000 (19:45 +0000)]
re PR c++/24138 (ICE with the code in PR 20407)
PR C++/24138
* tree.c (integer_all_onesp): Always return true if all bits on.
* cp/decl.c (reshape_init_array_1): Handle max_index of -1.
* testsuite/g++.dg/init/array0.C: New.
From-SVN: r108126
Paolo Carlini [Tue, 6 Dec 2005 17:19:30 +0000 (17:19 +0000)]
basic_string.h (insert(iterator, _CharT), [...]): Avoid troubles with ADL, user defined operators and __normal_iterator.
2005-12-06 Paolo Carlini <pcarlini@suse.de>
* include/bits/basic_string.h (insert(iterator, _CharT),
erase(iterator), erase(iterator, iterator)): Avoid troubles
with ADL, user defined operators and __normal_iterator.
* include/bits/stl_iterator.h (operator-(const __normal_iterator
<_Iterator, _Container>&, const __normal_iterator<_Iterator,
_Container>&)): Add overload for left and right iterators of
the same type.
* include/debug/safe_iterator.h (operator-(const _Safe_iterator
<_Iterator, _Sequence>&, const _Safe_iterator<_Iterator,
_Sequence>&)): Likewise.
* testsuite/21_strings/basic_string/types/1.cc: New.
From-SVN: r108123
Adrian Straetling [Tue, 6 Dec 2005 15:15:36 +0000 (15:15 +0000)]
md.texi: Adapt to implementation.
2005-12-06 Adrian Straetling <straetling@de.ibm.com>
* doc/md.texi: Adapt to implementation.
From-SVN: r108121
Roger Sayle [Tue, 6 Dec 2005 14:05:58 +0000 (14:05 +0000)]
typeck.c (build_binary_op): Issue warning if either operand of a comparison operator is a string literal...
* typeck.c (build_binary_op): Issue warning if either operand of a
comparison operator is a string literal, except for testing equality
or inequality against NULL.
* g++.dg/warn/Wstring-literal-comparison-1.C: New test case.
* g++.dg/warn/Wstring-literal-comparison-2.C: Likewise.
* g++.dg/warn/Wstring-literal-comparison-3.C: Likewise.
* g++.dg/warn/Wstring-literal-comparison-4.C: Likewise.
From-SVN: r108120
Roger Sayle [Tue, 6 Dec 2005 14:00:09 +0000 (14:00 +0000)]
re PR c++/25263 (ICE on invalid array bound: int x[1/0];)
PR c++/25263
* decl.c (compute_array_index_type): Check that itype is an
INTEGER_CST node before testing/clearing TREE_OVERFLOW.
* g++.dg/other/array2.C: New test case.
From-SVN: r108119
Joseph Myers [Tue, 6 Dec 2005 13:40:58 +0000 (13:40 +0000)]
* vi.po: Update.
From-SVN: r108117
Andreas Schwab [Tue, 6 Dec 2005 11:27:09 +0000 (11:27 +0000)]
* opts.c (decode_options): Fix typo in message.
From-SVN: r108115
Alan Modra [Tue, 6 Dec 2005 09:55:04 +0000 (09:55 +0000)]
re PR other/13873 (gcc/longlong.h uses test for PPC)
PR other/13873
* longlong.h: Merge PPC tests from upstream.
From-SVN: r108110
Richard Guenther [Tue, 6 Dec 2005 09:12:50 +0000 (09:12 +0000)]
fold-const.c (fold_convert): Do not build and fold CONVERT_EXPR, but always use NOP_EXPR.
2005-12-06 Richard Guenther <rguenther@suse.de>
* fold-const.c (fold_convert): Do not build and fold
CONVERT_EXPR, but always use NOP_EXPR.
From-SVN: r108107
Jan Beulich [Tue, 6 Dec 2005 09:07:23 +0000 (09:07 +0000)]
i386.c (builtin_description): Use MASK_SSE2 for __builtin_ia32_paddq and __builtin_ia32_subq.
2005-12-06 Jan Beulich <jbeulich@novell.com>
* config/i386/i386.c (builtin_description): Use MASK_SSE2 for
__builtin_ia32_paddq and __builtin_ia32_subq.
(ix86_init_mmx_sse_builtins): Use MASK_SSE|MASK_3DNOW_A for
__builtin_ia32_pshufw.
* config/i386/i386.md (mmx_adddi3, mmx_subdi3): Depend on TARGET_SSE2.
From-SVN: r108106
James E Wilson [Tue, 6 Dec 2005 05:31:39 +0000 (21:31 -0800)]
re PR target/24934 (profilebootstrap failure)
PR target/24934
* opts.c (decode_options): Turn off partitioning if flag_unwind_tables
is set.
From-SVN: r108103
Daniel Berlin [Tue, 6 Dec 2005 04:22:11 +0000 (04:22 +0000)]
In gcc/ 2005-12-05 Daniel Berlin <dberlin@dberlin.org>
In gcc/
2005-12-05 Daniel Berlin <dberlin@dberlin.org>
* print-tree.c (print_node): Ditto.
* tree-dfa.c (add_referenced_var): Tag's don't have DECL_INITIAL.
* tree-dump.c (dequeue_and_dump): Check for decl_common structure
before accessing DECL_ARTIFICIAL.
Handle new tag tree codes.
* tree-flow-inline.h (clear_call_clobbered): Update for tag
changes.
(unmodifiable_var_p): Ditto.
* tree-flow.h (mem_tag_kind): Remove.
(struct var_ann_d): Remove mem_tag_kind member.
* tree-gimple.c (is_gimple_reg): Tags are not gimple registers.
* tree-pretty-print.c (dump_generic_node): Handle memory tags.
* tree-ssa-alias.c (init_alias_info): Update for memory tag changes.
(group_aliases): Ditto.
(setup_pointers_and_addressables): Ditto.
(is_escape_site): Ditto.
(may_alias_p): Ditto.
(create_tag_raw): New function.
(create_memory_tag): Use it.
(dump_alias_info): Update for tags.
(may_be_aliased): Ditto.
(add_type_alias): Ditto.
(new_type_alias): Ditto.
(create_sft): Ditto.
(create_structure_vars): Ditto.
* tree-ssa-ccp.c (get_default_value): Ditto.
* tree-ssa-operands.c (get_expr_operands): Ditto.
(add_stmt_operand): Ditto.
(add_call_clobber_ops): Remove duplicated condition.
* tree-ssa.c (verify_flow_insensitive_alias_info): Update for
tags.
* tree-tailcall.c (suitable_for_tail_opt_p): Ditto.
* tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
* tree.c (init_ttree): Update structures for new tree codes.
(tree_code_size): Update sizes for new tree codes.
(make_node_stat): Don't try to set common things on minimal
structures.
(tree_node_structure): Update for tags.
(is_global_var): Ditto.
* tree.def: Add new tree codes.
* tree.h (MTAG_P): New macro.
(TREE_MEMORY_TAG_CHECK): Ditto.
(SSA_VAR_P): Update for tags.
(struct tree_memory_tag): New structure.
(MTAG_GLOBAL): New macro.
(union tree_node): Add memory tag member.
* treestruct.def (TS_MEMORY_TAG): New.
In gcc/cp
2005-12-05 Daniel Berlin <dberlin@dberlin.org>
* ptree.c (cxx_print_decl): Update to check for decl_common
structure.
From-SVN: r108102
Tom Tromey [Tue, 6 Dec 2005 02:30:11 +0000 (02:30 +0000)]
parse.y (patch_new_array_init): Don't set length on array.
gcc/java:
* parse.y (patch_new_array_init): Don't set length on array.
libjava:
* testsuite/libjava.compile/rh174912.java: New file.
From-SVN: r108099
GCC Administrator [Tue, 6 Dec 2005 00:17:34 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r108086
Dale Johannesen [Mon, 5 Dec 2005 23:04:28 +0000 (23:04 +0000)]
re PR target/24323 (_MM_TRANSPOSE4_PS could be improved)
2005-12-05 Dale Johannesen <dalej@apple.com>
* config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Fix to match
what was approved (PR 24323).
From-SVN: r108080
Gabriel Dos Reis [Mon, 5 Dec 2005 22:21:29 +0000 (22:21 +0000)]
c-tree.texi (Function Bodies): Remove description of RETURN_INIT.
* doc/c-tree.texi (Function Bodies): Remove description of
RETURN_INIT.
From-SVN: r108078
Joseph Myers [Mon, 5 Dec 2005 21:48:17 +0000 (21:48 +0000)]
libgcc.texi (__floatunsisf, [...]): Document.
* doc/libgcc.texi (__floatunsisf, __floatunsidf, __floatunsitf,
__floatunsixf, __floatundisf, __floatundidf, __floatunditf,
__floatundixf, __floatuntisf, __floatuntidf, __floatuntitf,
__floatuntixf, __powisf2, __powidf2, __powixf2, __mulsc3,
__muldc3, __multc3, __mulxc3, __divsc3, __divdc3, __divtc3,
__divxc3): Document.
From-SVN: r108077
Geoffrey Keating [Mon, 5 Dec 2005 21:38:27 +0000 (21:38 +0000)]
Index: gcc/ChangeLog
2005-12-05 Geoffrey Keating <geoffk@apple.com>
* config/darwin.c (machopic_select_section): It's not defined
as weak if it's only marked as weak_import.
Index: gcc/testsuite/ChangeLog
2005-12-05 Geoffrey Keating <geoffk@apple.com>
* gcc.dg/darwin-weakimport-3.c: New.
From-SVN: r108076
Geoffrey Keating [Mon, 5 Dec 2005 20:38:37 +0000 (20:38 +0000)]
Index: gcc/ChangeLog
2005-12-05 Geoffrey Keating <geoffk@apple.com>
* varasm.c (default_binds_local_p_1): Weakrefs don't bind locally.
A hidden weak object does bind locally. Strong linkonce data
counts like any other strong symbol for binding.
(weak_finish_1): Don't specially handle weakrefs, they no longer
arrive here.
(assemble_alias): Weakrefs can't be TREE_PUBLIC yet.
* c-common.c (handle_alias_attribute): Allow static aliases
of variables.
(handle_weakref_attribute): Don't call declare_weak on weakrefs.
* gthr-dce.h: Make weakrefs static.
* gthr-tpf.h: Likewise.
* gthr-solaris.h: Likewise.
* gthr-posix.h: Likewise.
* gthr-posix95.h: Likewise.
* config/darwin.c (darwin_encode_section_info): static weakref
variables are not necessarily defined in this translation unit.
* doc/extend.texi (Function Attributes): Mention that an alias
attribute creates a definition for the thing it's attached to.
Change the documentation for weakref to say that the thing
it's attached to must be static.
Index: gcc/testsuite/ChangeLog
2005-12-05 Geoffrey Keating <geoffk@apple.com>
* g++.old-deja/g++.abi/vtable2.C: Make weakrefs static.
* gcc.dg/attr-weakref-1.c: Modify to not try to test public weakrefs,
and to work on Darwin.
* gcc.dg/attr-weakref-1b.c: New file.
* gcc.dg/attr-weakref-2.c: New test.
* gcc.dg/darwin-weakref-1.c: New test.
From-SVN: r108074
Geoffrey Keating [Mon, 5 Dec 2005 19:37:11 +0000 (19:37 +0000)]
host-darwin.c (segv_handler): Unblock SEGV so we don't go into an infinite loop.
* config/rs6000/host-darwin.c (segv_handler): Unblock SEGV so
we don't go into an infinite loop.
From-SVN: r108070