re PR target/21723 (ICE while building libgfortran)
PR target/21723
* pa.md: Remove fcpy alternative from movhi and movqi patterns.
* pa32-regs.h (HARD_REGNO_NREGS): Return two floating point registers
for complex modes when generating code for PA 1.0.
(VALID_FP_MODE_P): New macro.
(HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P. Use non-overlapping register
sets for all general and floating point modes. Align wide floating
point modes to even register boundaries to comply with architectural
requirements.
(CLASS_MAX_NREGS): Update to align with change to HARD_REGNO_NREGS.
* pa64-regs.h (HARD_REGNO_NREGS): Update comment and formatting.
(VALID_FP_MODE_P): New macro.
(HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P. Use non-overlapping register
sets for all general and floating point modes. Align wide floating
point modes to even register boundaries to comply with architectural
requirements.
* gcc.dg/compare1.c: Add -fno-short-enums. Don't skip on any
target.
* gcc.dg/compare9.c: Use -fshort-enums instead of
-fno-short-enums. Change the last test to dg-bogus.
* gcc.dg/compare1.c: Add -fno-short-enums. Don't skip on any
target.
* gcc.dg/compare9.c: Use -fshort-enums instead of
-fshort-enums. Change the last test to dg-bogus.
* gnu/classpath/jdwp/processor/CommandSet.java: New file.
* gnu/classpath/jdwp/processor/PacketProcessor.java: Use
CommandSets to handle JdwpCommandPackets.
* gnu/classpath/jdwp/transport/JdwpReplyPacket.java: New
Constructor.
2005-07-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
Thomas Quinot <quinot@adacore.com>
* Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
new target gen-soccon.
2005-07-04 Robert Dewar <dewar@adacore.com>
* s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
2005-07-04 Thomas Quinot <quinot@adacore.com>
* g-socket.ads (Check_Selector): Minor rewording of comment.
2005-07-04 Vincent Celier <celier@adacore.com>
* vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
2005-07-04 Thomas Quinot <quinot@adacore.com>
* gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
2005-07-04 Sergey Rybin <rybin@adacore.com>
* gnat_ugn.texi: Add description of --eol gnatpp option
2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
Thomas Quinot <quinot@adacore.com>
* gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
if the user wants all calls of a subprogram to be flagged,
independently of whether they are made from within the same unit or
another unit.
Mention restriction for pragma Linker_Alias on some platforms.
Document pragma Linker_Constructor and Linker_Destructor.
Rewrite documentation of Weak_External, Linker_Section and
Linker_Alias pragmas.
Vincent Celier [Mon, 4 Jul 2005 13:31:15 +0000 (15:31 +0200)]
makegpr.adb (Build_Global_Archive): Make sure the list of sources is correctly computed and the main project data...
2005-07-04 Vincent Celier <celier@adacore.com>
* makegpr.adb (Build_Global_Archive): Make sure the list of sources is
correctly computed and the main project data is not modified while
doing so.
(Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
(Choose_C_Plus_Plus_Link_Process): Do not generate shell script
c++linker as this does not work on some platforms.
Vincent Celier [Mon, 4 Jul 2005 13:31:04 +0000 (15:31 +0200)]
vms_conv.adb (Initialize): Allow multiple ALI files to be given to the GNAT BIND command...
2005-07-04 Vincent Celier <celier@adacore.com>
* vms_conv.adb (Initialize): Allow multiple ALI files to be given to
the GNAT BIND command, as gnatbind accepts multiples ALI files with
the -L or -n switches.
Ed Schonberg [Mon, 4 Jul 2005 13:30:32 +0000 (15:30 +0200)]
sem_util.adb (Is_Object_Reference): An indexed or selected component whose prefix is an implicit dereference is an...
2005-07-04 Ed Schonberg <schonberg@adacore.com>
* sem_util.adb (Is_Object_Reference): An indexed or selected component
whose prefix is an implicit dereference is an object reference. Removes
spurious errors when compiling with -gnatc.
Gary Dismukes [Mon, 4 Jul 2005 13:29:58 +0000 (15:29 +0200)]
sem_eval.adb (Subtypes_Statically_Match): Use the discriminant constraint of full view of a private view T1 if present...
2005-07-04 Gary Dismukes <dismukes@adacore.com>
* sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
constraint of full view of a private view T1 if present, when T2 is a
discriminated full view.
Ed Schonberg [Mon, 4 Jul 2005 13:29:47 +0000 (15:29 +0200)]
sem_ch6.adb (Conforming_Types): If the types are anonymous access types check whether some designated type is a...
2005-07-04 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Conforming_Types): If the types are anonymous access
types check whether some designated type is a limited view, and use
the non-limited view if available.
Thomas Quinot [Mon, 4 Jul 2005 13:29:36 +0000 (15:29 +0200)]
sem_ch4.adb (Transform_Object_Operation): For an actual that is an overloaded function call...
2005-07-04 Thomas Quinot <quinot@adacore.com>
* sem_ch4.adb (Transform_Object_Operation): For an actual that is an
overloaded function call, carry interpretations from the original tree
to the copy.
Ed Schonberg [Mon, 4 Jul 2005 13:29:19 +0000 (15:29 +0200)]
sem_ch10.adb (Build_Limited_Views): A type declared with a private type extension needs a limited view.
2005-07-04 Ed Schonberg <schonberg@adacore.com>
Javier Miranda <miranda@adacore.com>
* sem_ch10.adb (Build_Limited_Views): A type declared with a private
type extension needs a limited view.
Remove previous restriction on private types available through the
limited-view (only tagged private types were previously allowed).
(Install_Withed_Unit): In the code that implements the
legality rule given in AI-377, exclude a child unit with the name
Standard, because it is a homonym of the Standard environment package.
Ed Schonberg [Mon, 4 Jul 2005 13:28:50 +0000 (15:28 +0200)]
par-ch9.adb (P_Task, [...]): Indicate that single task and single protected declarations can have an...
2005-07-04 Ed Schonberg <schonberg@adacore.com>
* par-ch9.adb (P_Task, P_Protected): Indicate that single task and
single protected declarations can have an interface list.
(P_Entry_Declaration): Add handler for Error_Resync, which can be raised
with seriously malformed entry declarations, and lead to compilation
abandoned messages.
Vincent Celier [Mon, 4 Jul 2005 13:28:39 +0000 (15:28 +0200)]
mlib-prj.adb (Auto_Initialize): New constant String
2005-07-04 Vincent Celier <celier@adacore.com>
* mlib-prj.adb (Auto_Initialize): New constant String
(SALs_Use_Constructors): New Boolean function
(Build_Library): Call gnatbind with Auto_Initialize switch when
SALs_Use_Constructors returns True.
* mlib-tgt.ads: Minor reformatting
* mlib-utl.ads: Minor reformatting
* opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
Ed Schonberg [Mon, 4 Jul 2005 13:28:00 +0000 (15:28 +0200)]
exp_intr.adb (Expand_Unc_Deallocation): If the designated type is controlled...
2005-07-04 Ed Schonberg <schonberg@adacore.com>
* exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
controlled, indicate the expected type of the dereference that is
created for the call to Deep_Finalize, to prevent spurious errors when
the designated type is private and completed with a derivation from
another private type.
Thomas Quinot [Mon, 4 Jul 2005 13:27:43 +0000 (15:27 +0200)]
exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for Itypes.
2005-07-04 Thomas Quinot <quinot@adacore.com>
* exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
Itypes. Itypes are really unexpected there.
(Build_TypeCode_Function): Generalise special processing for Itypes to
handle the case of numeric implicit base types as well as enumerated
ones.
Eric Botcazou [Mon, 4 Jul 2005 13:27:21 +0000 (15:27 +0200)]
decl.c (prepend_attributes): New case.
2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
* decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
<Pragma_Linker_Destructor>: Likewise.
* einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
Pragma_Linker_Destructor.
* gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
ATTR_LINK_DESTRUCTOR.
(static_ctors, static_dtors): New variables.
* misc.c (gnat_expand_body): Output current function as constructor
and destructor if requested.
* par-prag.adb: Add processing for pragma Linker_Constructor and
Linker_Destructor.
* sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
extracted from Check_Interrupt_Or_Attach_Handler.
(Check_Interrupt_Or_Attach_Handler): Invoke it.
Implement pragma Linker_Constructor and Linker_Destructor with the
help of Find_Unique_Parameterless_Procedure.
Replace Name_Alias with Name_Target for pragma Linker_Alias.
* snames.h, snames.ads, snames.adb:
Add Name_Linker_Constructor and Name_Linker_Destructor.
Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
* snames.adb: Remove Name_Alias.
* trans.c: Include cgraph.h.
(build_global_cdtor): New function.
(Compilation_Unit_to_gnu): Build global constructor and destructor if
needed.
(tree_transform) <N_Identifier>: Substitute renaming of view-conversions
of objects too.
(addressable_p) <COMPONENT_REF>: Unconditionally test
DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
* utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
variable if it is external.
(static_ctors, static_dtors): New global variables.
(process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
<ATTR_LINK_DESTRUCTOR>: Likewise.
(end_subprog_body): Chain function as constructor and destructor
if requested.
* exp_util.adb (Force_Evaluation): Unconditionally invoke
Remove_Side_Effects with Variable_Ref set to true.
(Remove_Side_Effects): Handle scalar types first. Use a renaming
for non-scalar types even if Variable_Ref is true and for class-wide
expressions.
Gary Dismukes [Mon, 4 Jul 2005 13:26:45 +0000 (15:26 +0200)]
checks.adb (Null_Exclusion_Static_Checks): In the case of N_Object_Declaration...
2005-07-04 Gary Dismukes <dismukes@adacore.com>
Ed Schonberg <schonberg@adacore.com>
Javier Miranda <miranda@adacore.com>
* checks.adb (Null_Exclusion_Static_Checks): In the case of
N_Object_Declaration, only perform the checks if the Object_Definition
is not an Access_Definition.
* sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
where the parent of an the access definition is an N_Object_Declaration
when determining the Associated_Node_For_Itype and scope of an
anonymous access-to-subprogram type.
* exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
Corresponding_Spec on the body created for a null procedure. Add ???
comment. Remove New_Copy_Tree call on body argument to
Set_Body_To_Inline.
* exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
discriminants, use the type of the actual as well, because the
discriminants may be read by the called subprogram.
* sem_ch3.adb (Access_Type_Declaration): If the designated type is an
access type we do not need to handle non-limited views.
(Build_Derived_Record_Type): Additional check to check that in case of
private types, interfaces are only allowed in private extensions.
Joel Brobecker [Mon, 4 Jul 2005 13:26:28 +0000 (15:26 +0200)]
a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
2005-07-04 Joel Brobecker <brobecker@adacore.com>
* a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
This prevents us from hitting a limitation during the debug info
generation when using stabs.
(Prims_Ptr): Likewise.
Vincent Celier [Mon, 4 Jul 2005 13:26:18 +0000 (15:26 +0200)]
mlib-tgt-tru64.adb, [...] (Build_Dynamic_Library): Remove all auto-initialization code...
2005-07-04 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-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
Remove all auto-initialization code, as this is now done through the
constructor mechanism.
* adaint.h, adaint.c (__gnat_binder_supports_auto_init,
__gnat_sals_init_using_constructors): New functions.
* bindgen.adb (Gen_Output_File_Ada): Generate pragmas
Linker_Constructor and Linker_Destructor when switch -a is used.
* bindusg.adb: Add line for new switch -a
* gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
(Gnatbind): When switch -a is used, check if it is allowed
* switch-b.adb (Scan_Binder_Switches): Process new switch -a
Eric Botcazou [Mon, 4 Jul 2005 13:26:02 +0000 (15:26 +0200)]
s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to fetch a code-range descriptor associated with...
2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
* s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
fetch a code-range descriptor associated with the machine state. On
failure set the machine state's PC to 0; on success, pass the
descriptor to exc_virtual_unwind.
* init.c (Tru64 section): New function __gnat_set_code_loc.
* c-format.c (gcc_gfc_format_type, gcc_gfc_flag_pairs,
gcc_gfc_char_table, init_dynamic_gfc_info): New.
(format_types_orig, handle_format_attribute): Add support for
format "gcc_gfc".
fortran:
* error.c (error_printf, error_print): Use ATTRIBUTE_GCC_GFC.
* gfortran.h (ATTRIBUTE_GCC_GFC): New.
(gfc_warning, gfc_warning_now, gfc_error, gfc_error_now,
gfc_fatal_error, gfc_internal_error, gfc_notify_std): Use
ATTRIBUTE_GCC_GFC.
Kaz Kojima [Sun, 3 Jul 2005 05:21:42 +0000 (05:21 +0000)]
sh.c (sh_output_mi_thunk): Initialize and clean up the minimal CFG stuff always when optimize > 0.
* config/sh/sh.c (sh_output_mi_thunk): Initialize and clean
up the minimal CFG stuff always when optimize > 0. Call
split_all_insns_noflow in PIC case if needed.
re PR c++/18279 (missing function bodies from -fdump-translation-unit)
PR c++/18279
* c-decl.c (c_write_global_declarations): Dump contents of
external scope to.
* tree-dump.c (dequeue_and_dump): Dump abstract origin of a
decl.
<TRY_FINALLY_EXPR>, <RETURN_EXPR>, <CASE_LABEL_EXPR>,
<LABEL_EXPR>,
<GOTO_EXPR>, <SWITCH_EXPR>: Add.
(dump_enabled_p): Return TRUE if PHASE is TDI_all and any dump
is enabled.
Co-Authored-By: Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>
From-SVN: r101544
Andrew Pinski [Sat, 2 Jul 2005 16:24:31 +0000 (16:24 +0000)]
re PR tree-optimization/14490 ([tree-ssa] Simplify "a - 10 > 150" into "a > 160")
2005-07-02 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/14490
* fold-const.c (fold_binary): Handle the return value of
fold_to_nonsharp_ineq_using_bound if we get back the same operand back.
Implement "X +- C1 CMP C2" folding to "X CMP C2 -+ C1".
Jeff Law [Sat, 2 Jul 2005 14:15:11 +0000 (08:15 -0600)]
tree-ssa-dom.c (find_equivalent_equality_comparison): Do not a eliminate type conversion which feeds an equality comparison if...
* tree-ssa-dom.c (find_equivalent_equality_comparison): Do not
a eliminate type conversion which feeds an equality comparison
if the original type or either operand in the comparison is a
function pointer.
* gcc.dg/tree-ssa/pr22051-1.c: New test.
* gcc.dg/tree-ssa/pr22051-2.c: New test.
Joseph Myers [Sat, 2 Jul 2005 13:19:59 +0000 (14:19 +0100)]
c.opt, [...]: Remove "." from end of help texts.
* c.opt, common.opt, config/bfin/bfin.opt, config/pa/pa.opt,
config/rs6000/rs6000.opt, params.def: Remove "." from end of help
texts.
* config/avr/avr.c: Do not use '`' as left quote.
* config/rs6000/rs6000.c, config/s390/s390.c, opts.c, tree.c:
Remove "." from end of diagnostics. Make diagnostics start with
lowercase letter.
cp:
* name-lookup.c, parser.c: Use %q, %< and %> to quote in
diagnostics.
fortran:
* lang.opt: Remove "." from end of help texts.
objc:
* objc-act.c: Use %q to quote in diagnostics.
Joseph Myers [Sat, 2 Jul 2005 10:55:32 +0000 (11:55 +0100)]
toplev.c (default_tree_printer): Handle setting location with '+' flag.
2005-07-02 Zack Weinberg <zack@codesourcery.com>
Joseph S. Myers <joseph@codesourcery.com>
* toplev.c (default_tree_printer): Handle setting location with
'+' flag.
* c-objc.common.c (c_tree_printer): Likewise.
* c-format.c (gcc_diag_flag_specs): Add '+'.
(gcc_cdiag_char_table): Allow '+' flag for tree formats.
(format_types_orig): Allow '+' flag for gcc_diag and gcc_cdiag
formats.
* c-common.c, c-decl.c, c-objc-common.c, c-pragma.c,
config/arm/pe.c, config/i386/winnt.c, config/ia64/ia64.c,
config/mcore/mcore.c, config/sh/symbian.c, config/sol2.c,
config/v850/v850.c, function.c, stor-layout.c, toplev.c,
tree-inline.c, tree-optimize.c, tree.c, varasm.c: Use '+' flag
instead of %J or %H. Use 'q' flag for quoting. Avoid '.' at end
of diagnostics. Use %q+D not %s for a decl. Do not pass excess
format arguments where %J is used without %D.
cp:
* error.c (location_of): Add comment.
(locate_error, cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
* cp-tree.h (cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
* call.c, class.c, decl.c, decl2.c, friend.c, init.c,
name-lookup.c, parser.c, pt.c, search.c, semantics.c, typeck.c,
typeck2.c: Use '+' flag instead of %J, cp_error_at, cp_warning_at
or cp_pedwarn_at. Mark up some diagnostic strings with N_.
java:
* class.c, decl.c, expr.c: Use '+' flag instead of %J. Use 'q'
flag for quoting.
objc:
* objc-act.c: Use '+' flag instead of %J. Use 'q' flag for
quoting.
re PR other/22268 (libiberty demanger crashes on (invalid) mangled name)
PR other/22268
* cp-demangle.c (d_expr_primary): Don't run off the end of the
string while looking for the end of a literal value.
* testsuite/demangle-expected: Add test case.
* config/cris/cris.md (CRIS_CC0_REGNUM): New constant.
Swap numbers for CRIS_AP_REGNUM and CRIS_MOF_REGNUM.
* config/cris/cris.c (cris_conditional_register_usage): Adjust
reg_names[CRIS_CC0_REGNUM] for early CRIS versions.
(cris_print_operand) <case REG>: Handle CRIS_CC0_REGNUM.
(cris_md_asm_clobbers): Clobber CRIS_CC0_REGNUM for all asms.
* config/cris/cris.h (CRIS_CANONICAL_CC0_REGNUM): New macro.
(enum reg_class): New member CC0_REGS.
(REG_CLASS_FROM_LETTER): Add 'c' for CC0_REGS.
(FIRST_PSEUDO_REGISTER, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
(HARD_REGNO_MODE_OK, MODES_TIEABLE_P, REG_CLASS_NAMES)
(CRIS_SPECIAL_REGS_CONTENTS, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
(PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
Adjust for register now described.