re PR bootstrap/14871 (Non-unified-tree ordinary cross-compiler builds default to stupid names for tools)
PR bootstrap/14871
* Makefile.tpl: If we don't have built-in-tree target tools,
use the ones found by configure rather than hacking around with
program_transform_name.
* configure.in: Give Makefile.tpl the information necessary
to do that.
* Makefile.in: Regenerate.
* configure: Regenerate.
VMThrowable.java (getStackTrace): Pass trace as-is to modified lookup().
* java/lang/VMThrowable.java (getStackTrace): Pass trace as-is to
modified lookup().
* gnu/gcj/runtime/NameFinder.java (lookup): Change to take in a
StackTraceElement directly.
(newElement): New native helper method to create StackTraceElement
bypassing Java access control.
(createStackTraceElement): Use newElement() instead of directly
calling StackTraceElement's constructor.
* gnu/gcj/runtime/natNameFinder.cc (newElement): New method.
re PR pch/13419 (Clarification of invoke.texi requested)
2004-04-08 Geoffrey Keating <geoffk@apple.com>
PR pch/13419
PR pch/14137
Radar #: 3315288
* doc/invoke.texi (Precompiled Headers): Suggest -o
to put an output file in a particular place. Be more detailed
about which options affect PCH validity and which options
might not work.
* c-pch.c (pch_matching): New.
(MATCH_SIZE): New.
(struct c_pch_validity): New field 'match'.
(pch_init): Handle pch_matching.
(c_common_valid_pch): Check pch_matching.
Danny Smith [Thu, 8 Apr 2004 22:31:23 +0000 (22:31 +0000)]
re PR c++/14808 ([win32] Undefined results with virtual base classes)
PR c++/14808
* defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
to 1 if ASM_OUTPUT_DEF is defined.
* doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
* config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
Set to non-zero iff not a one_only decl.
* cp/method.c (use_thunk): Test TARGET_USE_LOCAL_THUNK_ALIAS_P rather
than ASM_OUTPUT_DEF.
Joel Sherrill [Thu, 8 Apr 2004 17:54:03 +0000 (17:54 +0000)]
re PR ada/14538 (*-rtems broken for gnat)
2004-04-08 Joel Sherrill <joel@oarcorp.com>
PR ada/14538
* ada/5rosinte.adb: Remove fake mprotect() body.
* ada/5rosinte.ads: Add SA_SIGINFO.
* ada/5rtpopsp.adb: Rewrite to use new interface.
* ada/init.c: Reorder so the simple single OS conditional __rtems__
is tested before more complex ones which mix UNIX and embedded
systems in the conditional.
2004-04-08 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* trans.c (tree_transform): Shortcut returning error_mark_node for
statements in annotate_only_mode.
(tree_transform, case N_Label, case N_Return_Statement,
N_Goto_Statement): Make statement tree instead of generating code.
(tree_transform, case N_Assignment_Statement): No longer check
type_annotate_only.
(gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
RETURN_STMT): New.
(first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
New fcns.
(gnat_to_gnu): Collect any RTL generated and deal with it.
(tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
(tree_transform case N_If_Statement): Rewrite to make IF_STMT.
(gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
* ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
* ada-tree.def (EXPR_STMT): Fix typo in name.
(BLOCK_STMT, IF_STMT): New nodes.
* ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
LABEL_STMT_FIRST_IN_EH): New macros.
(RETURN_STMT_EXPR): Likewise.
* ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
2004-04-08 Thomas Quinot <quinot@act-europe.fr>
* atree.ads: Correct documentation on extended nodes.
* link.c: Set run_path_option for FreeBSD.
2004-04-08 Vincent Celier <celier@gnat.com>
* mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
one of the ALI file, do not link with DEC lib.
* par.adb Remove the last two characters ("%s" or "%b") when checking
if a language defined unit may be recompiled.
2004-04-08 Ed Schonberg <schonberg@gnat.com>
* sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
removal of abstract operation leaves no possible interpretation for
expression.
* sem_eval.adb (Eval_Qualified_Expression): Use
Set_Raises_Constraint_Error on node when needed, so that it does not
get optimized away by subsequent optimizations.
* sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
operands even when they are not wrapped in a type conversion.
* sem_prag.adb (Set_Exported): Warn about making static as result of
export only when the export is coming from source. This may be not
be true e.g. on VMS where we expand export pragmas for exception codes
together with imported or exported exceptions, and we don't want the
user to be warned about something he didn't write.
2004-04-08 Thomas Quinot <quinot@act-europe.fr>
* sem_util.adb (Note_Possible_Modification): Reorganize to remove code
duplication between normal entities and those declared as renamings.
No functional change.
* s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
inline functions returning an unconstrained result.
2004-04-08 Eric Botcazou <ebotcazou@act-europe.fr>
* utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
conform to what other front-ends do.
2004-04-08 Doug Rupp <rupp@gnat.com>
* 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
libraries.
Paolo Carlini [Wed, 7 Apr 2004 14:32:47 +0000 (14:32 +0000)]
2004-04-07 Paolo Carlini <pcarlini@suse.de>
* config/locale/gnu/monetary_members.cc
(moneypunct<wchar_t>::_M_initialize_moneypunct): Prefer
_NL_MONETARY_DECIMAL_POINT_WC, _NL_MONETARY_THOUSANDS_SEP_WC,
and __MON_GROUPING to _NL_NUMERIC_DECIMAL_POINT_WC,
_NL_NUMERIC_THOUSANDS_SEP_WC, and GROUPING.
* config/locale/gnu/numeric_members.cc
(numpunct<char>::_M_initialize_numpunct): Prefer DECIMAL_POINT
and THOUSANDS_SEP to the deprecated RADIXCHAR and THOUSEP.
Benjamin Kosnik [Wed, 7 Apr 2004 03:33:36 +0000 (03:33 +0000)]
Fixups for EDG front end.
2004-04-06 Benjamin Kosnik <bkoz@redhat.com>
Fixups for EDG front end.
* include/ext/rope: Instead of non-existent function
_Data_allocate, use allocator's allocate. Use this.
(namespace _Rope_constants): Move _S_max_rope_depth, and _Tag
enumerations from _Rope_RopeRep here.
* include/ext/ropeimpl.h: Same.
* src/ext-inst.cc (_S_min_len): Fix up definition.
* config/locale/gnu/ctype_members.cc: Qualify base class members
with this.
* config/locale/generic/ctype_members.cc: Same.
* config/locale/gnu/messages_members.h: Same.
* config/locale/generic/messages_members.h: Same.
* src/ctype.cc: Same.
* include/bits/codecvt.h: Same.
re PR bootstrap/14760 (A bug in configure{,.in} prevents using both --program-suffix and --program-prefix)
PR bootstrap/14760
* configure.in: When computing baseargs, strip *all* copies of
offending options. Also, don't match/substitute the trailing space,
so that this actually works when two similar options are separated by
only one space.
* configure: Regenerate.
* config.gcc: Stop changing enable_threads midstream.
Replace uses of enable_threads_flag with enable_threads.
* configure.ac: Replace uses of enable_threads_flag with
enable_threads. Improve autoconf quotation in one place.
* configure: Regenerate.
* gcc.dg/compat/struct-by-value-5a_main.c,
gcc.dg/compat/struct-by-value-5b_main.c: New files.
* gcc.dg/compat/struct-by-value-5_main.c: Delete.
* gcc.dg/compat/struct-by-value-5a_x.c,
gcc.dg/compat/struct-by-value-5b_x.c: New, split out from
gcc.dg/compat/struct-by-value-5_x.c.
* gcc.dg/compat/struct-by-value-5a_y.c,
gcc.dg/compat/struct-by-value-5b_y.c: New, split out from
gcc.dg/compat/struct-by-value-5_y.c.
* gcc.dg/compat/struct-by-value-6a_main.c,
gcc.dg/compat/struct-by-value-6b_main.c: New files.
* gcc.dg/compat/struct-by-value-6_main.c: Delete.
* gcc.dg/compat/struct-by-value-6a_x.c,
gcc.dg/compat/struct-by-value-6b_x.c: New, split out from
gcc.dg/compat/struct-by-value-6_x.c.
* gcc.dg/compat/struct-by-value-6a_y.c,
gcc.dg/compat/struct-by-value-6b_y.c: New, split out from
gcc.dg/compat/struct-by-value-6_y.c.
* gcc.dg/compat/struct-by-value-7a_main.c,
gcc.dg/compat/struct-by-value-7b_main.c: New files.
* gcc.dg/compat/struct-by-value-7_main.c: Delete.
* gcc.dg/compat/struct-by-value-7a_x.c,
gcc.dg/compat/struct-by-value-7b_x.c: New, split out from
gcc.dg/compat/struct-by-value-7_x.c.
* gcc.dg/compat/struct-by-value-7a_y.c,
gcc.dg/compat/struct-by-value-7b_y.c: New, split out from
gcc.dg/compat/struct-by-value-7_y.c.
Jakub Jelinek [Tue, 6 Apr 2004 20:29:09 +0000 (22:29 +0200)]
i386-sse-8.c: Don't use -march=pentium3 on x86_64.
* gcc.dg/i386-sse-8.c: Don't use -march=pentium3 on x86_64.
* gcc.dg/i386-local.c: Expect %edi, not %eax register on x86_64.
* gcc.dg/20020103-1.c: Add -fno-asynchronous-unwind-tables to
options.
builtins.c: Implement support for sincos function.
2004-04-06 Uros Bizjak <uros@kss-loka.si>
* builtins.c: Implement support for sincos function.
(expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
BUILT_IN_COS{,F,L}.
(expand_builtin_mathfn_3): New function.
(expand_builtin): Expand BUILT_IN_SIN{,F,L} and
BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
flag_unsafe_math_optimization is set.
(__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
when supported.
2004-04-06 Ed Schonberg <schonberg@gnat.com>
* sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
operator calls in functional notation, and apply
Universal_Interpretation to operands, not to their type.
2004-04-06 Robert Dewar <dewar@gnat.com>
* 5wdirval.adb: Minor reformatting
2004-04-06 Ed Falis <falis@gnat.com>
* gnat_rm.texi: Improve a reference to the GCC manual
Kaz Kojima [Tue, 6 Apr 2004 05:58:44 +0000 (05:58 +0000)]
sh.c (prepare_move_operands): Use emit_call_insn when the TLS address is generated by a function call.
* config/sh/sh.c (prepare_move_operands): Use emit_call_insn
when the TLS address is generated by a function call.
* config/sh/sh.md (tls_global_dynamic): Use a call expression.
(tls_local_dynamic): Likewise.
Paul Brook [Mon, 5 Apr 2004 23:02:22 +0000 (23:02 +0000)]
re PR c++/2123 (Array initializer)
PR2123
* g++.gd/expr/anew1.C: XFAIL and make reproducible. Call abort on
failure and exit(0) on success.
* g++.gd/expr/anew2.C: Ditto.
* g++.gd/expr/anew3.C: Ditto.
* g++.gd/expr/anew4.C: Ditto.
gcc.c (combine_flag): New global variable, for new driver option.
2004-04-05 Caroline Tice <ctice@apple.com>
* gcc.c (combine_flag): New global variable, for new driver option.
(struct compiler): Add two new fields, to be used when
combining multiple input files in a single pass (IMA).
(default_compilers): Add values for the new fields to all
compiler entries. Modify the "@c" compiler entry for doing IMA
properly with "-save-temps" and the "combine" flag.
(option_map): Add new driver option, "--combine", to tell driver
to pass multiple input files to compiler at one time.
(have_o_argbuf_index): New global variable.
(store_arg): Modify to assign value to have_o_argbuf_index.
(struct infile): Add three new fields, to help with IMA.
(display_help): Add help for new "combine" option.
(process_command): Remove local variable have_o; add code to check
for new "combine" option; remove assignment to combine_inputs.
(do_spec_1): Modify to deal with IMA better.
(main): Make variable 'lang_n_infiles' local to entire function
rather than to a single block. Use flag combine_flag to
determine whether to do IMA or not; Modify loop initializing
infiles to deal properly with linker files.
Add code for doing preprocessing in presence of
IMA with "-save-temps" flag. Modify "main" loop to handle
multiple input files, in multiple languages, with or without
preprocessing, gracefully.
* toplev.c (set_src_pwd): Modify to not complain if attempting to
re-set it to same directory it's previously been set to (avoid
irritating, meaningless warning messages when doing IMA with
save-temps).
* doc/invoke.texi: Add "-combine" to list of Overall Options;
remove documentation about IMA that is no longer accurate; Add
documentation explaining what "-combine" does.
* ada/lang-specs.h: Add initialization values for new fields in
"struct compiler".
* cp/lang-specs.h: Likewise.
* f/lang-specs.h: Likewise.
* java/lang-specs.h: Likewise.
* objc/lang-specs.h: Likewise.
* treelang/lang-specs.h: Likewise.
PR optimization/13424 (hppa), bootstrap/14462, c/14828
* pa.md: Use replace_equiv_address to retain the attributes of the
memory operands used in the split and peephole2 patterns for optimizing
the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
Co-Authored-By: John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
From-SVN: r80433
* adaint.h, adaint.c: Add function __gnat_named_file_length
* impunit.adb: Add Ada.Directories to the list
* Makefile.in: Add VMS and Windows versions of
Ada.Directories.Validity package body.
* Makefile.rtl: Add a-direct and a-dirval
* mlib-tgt.ads: Minor comment update.
* a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
a-direct.ads, a-direct.adb: New files.
2004-04-05 Vincent Celier <celier@gnat.com>
PR ada/13620
* make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
just to the compiler.
2004-04-05 Robert Dewar <dewar@gnat.com>
* a-except.adb (Exception_Name_Simple): Make sure lower bound of
returned string is 1.
* ali-util.adb: Use proper specific form for Warnings (Off, entity)
* eval_fat.ads: Minor reformatting
* g-curexc.ads: Document that lower bound of returned string values
is always one.
* gnatlink.adb: Add ??? comment for previous change
(need to document why this is VMS specific)
* s-stoele.ads: Minor reformatting
* tbuild.ads: Minor reformatting throughout (new function specs)
* par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
after WITH.
* scng.adb: Minor reformatting
2004-04-05 Geert Bosch <bosch@gnat.com>
* eval_fat.adb (Machine): Remove unnecessary suppression of warning.
(Leading_Part): Still perform truncation to machine number if the
specified radix_digits is greater or equal to machine_mantissa.
2004-04-05 Javier Miranda <miranda@gnat.com>
* par-ch3.adb: Complete documentation of previous change
Correct wrong syntax documentation of the OBJECT_DECLARATION rule
(aliased must appear before constant).
* par-ch4.adb: Complete documentation of previous change.
* par-ch6.adb: Complete documentation of previous change.
* sinfo.ads: Fix typo in commment.
2004-04-05 Ed Schonberg <schonberg@gnat.com>
* sem_ch3.adb (Inherit_Components): If derived type is private and has
stored discriminants, use its discriminants to constrain parent type,
as is done for non-private derived record types.
* sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
Ada 2005 AI-310: an abstract non-dispatching operation is not a
candidate interpretation in an overloaded call.
* tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
expression is Null and target type is not an access type (e.g. a
non-private address type).
2004-04-05 Thomas Quinot <quinot@act-europe.fr>
* exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
statement whose right-hand side is an inlined call, save a copy of the
original assignment subtree to preserve enough consistency for
Analyze_Assignment to proceed.
* sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
complete assignment subtree which is now unnecessary, as the expansion
of inlined call has been improved to preserve a consistent assignment
tree. Note_Possible_Modification must be called only
after checks have been applied, or else unnecessary checks will
be generated.
* sem_util.adb (Note_Possible_Modification): Reorganise the handling
of explicit dereferences that do not Come_From_Source:
- be selective on cases where we must go back to the dereferenced
pointer (an assignment to an implicit dereference must not be
recorded as modifying the pointer);
- do not rely on Original_Node being present (Analyze_Assignment
calls Note_Possible_Modification on a copied tree).
* sem_warn.adb (Check_References): When an unset reference to a pointer
that is never assigned is encountered, prefer '<pointer> may be null'
warning over '<pointer> is never assigned a value'.
2004-04-05 Ramon Fernandez <fernandez@gnat.com>
* tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
the ABI.
* 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
libexc. We currently don't reference anything in this library and
linking it in triggers linker warnings we don't want to see.
Richard Kenner [Mon, 5 Apr 2004 12:25:26 +0000 (12:25 +0000)]
c-decl.c (build_compound_literal): Use TYPE_READONLY.
* c-decl.c (build_compound_literal): Use TYPE_READONLY.
* emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
* objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
* c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
PARM_DECL.
* calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
for a type.
* print-tree.c (print_node): Properly handle side-effects, readonly,
and constant flags.
* tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
and TREE_CONSTANT if not a type.
* tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
(IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
(NON_TYPE_CHECK): New macro.
(TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
* cp/init.c (decl_constant_value): Don't look at DECL_INITIAL
of PARM_DECL.
* cp/tree.c (bot_manip, build_min): Don't look at TREE_CONSTANT
or TREE_SIDE_EFFECTS of a type.
Eric Botcazou [Mon, 5 Apr 2004 04:22:57 +0000 (06:22 +0200)]
sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG unconditionally.
* config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
to DWARF2_DEBUG unconditionally.
(ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
re PR target/14548 (building Ada library incorrectly requires collect2 on mingw)
PR target/14548
* config.host: Set the shell variable host_can_use_collect2.
Set it to yes by default, and to no for alpha*-dec-*vms*,
i[34567]86-*-mingw32*, and powerpc-*-beos*.
* configure.ac: Set and substitute the shell variable collect2.
Give an error if use_collect2 is yes and host_can_use_collect2 is
no.
* Makefile.in (COLLECT2): Rename from USE_COLLECT2. Change all
uses. Initialize to @collect2@.
(STAGESTUFF): Remove $(USE_COLLECT2).
* config/alpha/x-vms (USE_COLLECT2): Don't set.
* config/i386/t-mingw32 (USE_COLLECT2): Likewise.
* config/rs6000/t-beos (USE_COLLECT2): Likewise.
* config/pa/t-pa64: Remove commented out USE_COLLECT2.
* configure: Regenerate.
Paolo Carlini [Sat, 3 Apr 2004 13:39:16 +0000 (13:39 +0000)]
mt_allocator.h (__mt_alloc<>::allocate): Factor out some duplicated code.
2004-04-03 Paolo Carlini <pcarlini@suse.de>
* include/ext/mt_allocator.h (__mt_alloc<>::allocate): Factor out
some duplicated code.
(__mt_alloc<>::_Bin_record): Spare the space of _M_free and _M_used
in the single threaded case.
* testsuite/performance/20_util/allocator/list_sort_search.cc:
Reorder and renumber the tests consistently with the other testfiles.
* testsuite/performance/20_util/allocator/map_mt_find.cc: Ditto.
* testsuite/performance/20_util/allocator/map_thread.cc: Ditto.
* testsuite/performance/20_util/allocator/producer_consumer.cc: Ditto.
* gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
Replace ifinfo by ifnottex, to make makeinfo --html happy again.
Add info directory entry and category.
Mark Mitchell [Thu, 1 Apr 2004 23:30:25 +0000 (23:30 +0000)]
re PR target/14040 (ARM cross compiler: error: could not split insn)
PR target/14040
* genemit.c (gen_split): Change prototype of generated code.
* genrecog.c (write_action): Adjust prototype for and calls to
gen_split_*.
* gensupport.c (struct queue_elem): Add split field.
(queue_pattern): Return a value. Clear the split field.
(process_rtx): Maintain an association between an insn and the
split generated from it for a define_insn_and_split.
(process_one_cond_exec): Generate a new split for a
define_insn_and_split.
* config/arm/arm-protos.h (arm_split_constant): Add insn
parameter.
(emit_constant_insn): New function.
(arm_gen_constant): Use it.
* config/arm/arm.md: Adjust calls to arm_split_constant.
Paolo Carlini [Thu, 1 Apr 2004 21:47:59 +0000 (21:47 +0000)]
mt_allocator.h (__mt_alloc<>::_S_initialize): Streamline the second half...
2004-04-01 Paolo Carlini <pcarlini@suse.de>
* include/ext/mt_allocator.h (__mt_alloc<>::_S_initialize):
Streamline the second half, wrapping it in a single
'#ifdef __GTHREADS if (__gthread_active_p())' and avoiding
conditionals inside loops.
Richard Kenner [Thu, 1 Apr 2004 13:41:37 +0000 (13:41 +0000)]
expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
* expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
* stor-layout.c (layout_decl): Likewise.
* tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
* fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
* print-tree.c (print_node): Handle various used of unsigned_flag.
* tree.def (BIT_FIELD_REF): Update comment.
* tree.h (TREE_UNSIGNED): Deleted.
(DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
* cp/class.c (VTT_TOP_LEVEL_P): Use unsigned_flag directly.
* f/com.c (ffe_truthvalue_conversion, case COMPONENT_REF):
Use DECL_UNSIGNED and integer_onep.