Richard Kenner [Mon, 12 Apr 2004 21:25:55 +0000 (21:25 +0000)]
c-decl.c (finish_decl): Make a decl_stmt for a variable-sized TYPE_DECL.
* c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
TYPE_DECL.
* c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
* stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
* stor-layout.c (variable_size): Don't check for MINUS_EXPR.
Use skip_simple_arithmetic to find SAVE_EXPR.
(force_type_save_exprs, force_type_save_exprs_1): New functions.
* tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
Properly chain multiple pointers.
(copy_tree_r): Copy a TYPE_DECL.
* tree.c (variably_modified_type_p): Add some missing tests and
make some other minor changes.
* tree.h (force_type_save_exprs): New declaration.
* gcc.c-torture/execute/20040411-1.c: New test.
re PR bootstrap/14905 ('make install' fails on grepjar.1, not included in tarball)
2004-04-12 Kelley Cook <kcook@gcc.gnu.org>
PR bootstrap/14905
* configure.ac: Parse --enable-generated-files-in-srcdir.
* Makefile.am: Copy man and info files to srcdir if requested.
* configure: Regenerate.
* Makefile.in Regenerate.
Roger Sayle [Mon, 12 Apr 2004 17:28:11 +0000 (17:28 +0000)]
simplify-rtx.c (simplify_binary_operation): Remove fall throughs.
* simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
Remove fall throughs. Convert 0/x and 0%x into x&0 when x has
side-effects. Don't convert x/1.0 into x if we honor signaling NaNs.
Convert x/-1.0 into -x if we don't honor signaling NaNs. Convert
x/-1 into -x. Optimize x%1 into x&0 if x has side-effects. Optimize
x%-1 into 0 (or x&0 if x has side-effects).
Paolo Carlini [Mon, 12 Apr 2004 08:36:23 +0000 (08:36 +0000)]
2004-04-12 Paolo Carlini <pcarlini@suse.de>
* config/locale/gnu/numeric_members.cc
(numpunct<wchar_t>::_M_initialize_numpunct): No need to wrap
in __uselocale, since btowc is called for chars belonging to
the basic character set.
rs6000.md: Document why a pattern is not available.
* config/rs6000/rs6000.md: Document why a pattern is not
available.
* config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
of floats on the E500.
(branch_positive_comparison_operator): Do not allow NE even on the
E500.
Roger Sayle [Sun, 11 Apr 2004 21:18:40 +0000 (21:18 +0000)]
fold-const.c (fold_binary_op_with_conditional_arg): Tweak calling convention to allow a NULL_TREE to be returned.
* fold-const.c (fold_binary_op_with_conditional_arg): Tweak
calling convention to allow a NULL_TREE to be returned. Factor
sanity checks from callers, return NULL_TREE when appropriate.
(fold): Handle COMPOUND_EXPR operands of binary expressions
before COND_EXPR operands. Use reorder_operands_p(a,b) to check
whether a op (b,c) can be rewritten as (b, a op c). Simplify
calls to fold_binary_op_with_conditional_arg.
Andreas Tobler [Sun, 11 Apr 2004 08:20:42 +0000 (10:20 +0200)]
bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap failure on solaris.
2004-04-11 Andreas Tobler <a.tobler@schweiz.ch>
* bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
failure on solaris. Place ifdef HAVE_return around gen_ret call.
* cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
HAVE_return and place it around the place where it is needed.
Andrew Pinski [Sun, 11 Apr 2004 06:21:05 +0000 (06:21 +0000)]
varasm.c (text_section): Use TEXT_SECTION_ASM_OP and ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING...
2004-04-11 Andrew Pinski <pinskia@physics.uc.edu>
* varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
and NORMAL_TEXT_SECTION_NAME.
(unlikely_text_section): Check targetm.have_named_sections
instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
instead of SECTION_FORMAT_STRING.
* config/mips/iris5.h (current_section_name): Add
in_unlikely_executed_text case and move the abort into the switch.
* config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
(NORMAL_TEXT_SECTION_NAME): Remove.
(UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
(SECTION_FORMAT_STRING): Remove.
* defaults.h (SECTION_FORMAT_STRING): Remove.
* tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
(SECTION_FORMAT_STRING): Remove.
re PR target/14887 (compat/struct-ret-19 failure on ia64-hpux - argument passing bug)
PR 14887
* config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
mode argument.
* config/ia64/ia64.c (ia64_hpux_file_end): Check
TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
Roger Sayle [Fri, 9 Apr 2004 21:39:14 +0000 (21:39 +0000)]
simplify-rtx.c (mode_signbit_p): New function to check whether an RTX is an immediate constant that represents...
* simplify-rtx.c (mode_signbit_p): New function to check whether
an RTX is an immediate constant that represents the most significant
bit of a given machine mode.
(simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
C is the sign bit.
(simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
when C2 is the sign bit.
(simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
is the sign bit. Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
sign bit.
* gcc.c-torture/execute/20040409-1.c: New test case.
* gcc.c-torture/execute/20040409-2.c: New test case.
* gcc.c-torture/execute/20040409-3.c: New test case.
basic-block.h (struct edge_def): Add new field, crossing_edge.
2004-04-09 Caroline Tice <ctice@apple.com>
* basic-block.h (struct edge_def): Add new field, crossing_edge.
(struct basic_block_def): Add new field, partition.
(UNPARTITIONED, HOT_PARTITION, COLD_PARTITION): New constant macro
definitions.
(partition_hot_cold_basic_blocks): Add extern function
declaration.
* bb-reorder.c (function.h, obstack.h, expr.h, regs.h): Add four new
include statements.
(N_ROUNDS): Increase the maximum number of rounds by 1.
(branch_threshold): Add array value for new round.
(exec_threshold): Add array value for new round.
(push_to_next_round_p): New function.
(add_unlikely_executed_notes): New function.
(find_rarely_executed_basic_blocks_and_crossing_edges): New function.
(mark_bb_for_unlikely_executed_section): New function.
(add_labels_and_missing_jumps): New function.
(add_reg_crossing_jump_notes): New function.
(fix_up_fall_thru_edges): New function.
(find_jump_block): New function.
(fix_crossing_conditional_branches): New function.
(fix_crossing_unconditional_branches): New function.
(fix_edges_for_rarely_executed_code): New function.
(partition_hot_cold_basic_blocks): New function.
(find_traces): Add an extra round for partitioning hot/cold
basic blocks.
(find_traces_1_round): Add a parameter. Modify to push all cold blocks,
and only cold blocks, into the last (extra) round of collecting traces.
(better_edge_p): Add a parameter. Modify to favor non-crossing edges
over crossing edges.
(bb_to_key): Add code to correctly identify cold blocks when
doing partitioning.
(connect_traces): Modify to connect all the non-cold traces first, then
go back and connect up all the cold traces.
(reorder_basic_blocks): Add call to add_unlikely_executed_notes.
* cfg.c (entry_exit_blocks): Add initialization for partition field in
entry and exit blocks.
* cfgbuild.c (make_edges): Update current_function_has_computed_jump
if we are doing hot/cold partitioning.
* cfgcleanup.c (cfglayout.h): Add new include statement.
(try_simplify_condjump): Modify to not attempt on blocks with jumps
that cross section boundaries.
(try_forward_edges): Likewise.
(merge_blocks_move_predecessor_nojumps): Likewise.
(merge_blocks_move_successor_nojumps): Likewise.
(merge_blocks_move): Likewise.
(try_crossjump_to_edge): Modify to not attempt after we have done
the block partitioning.
(try_crossjump_bb): Modify to not attempt on blocks with jumps that
cross section boundaries.
(try_optimize_cfg): Likewise.
* cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
jumps that cross section boundaries.
* cfglayout.c (flags.h): Add new include statement.
(update_unlikely_executed_notes): New function.
(fixup_reorder_chain): Add code so when a new jumping basic block is
added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
updated appropriately.
(duplicate_insn_chain): Add code to duplicate the new NOTE insn
introduced by this optimization.
* cfglayout.h (scan_ahead_for_unlikely_executed_note): Add new
extern function declaration.
* cfgrtl.c (can_delete_note_p): Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
list of notes that can be deleted.
(create_basic_block_structure): Add initialization for partition field.
(rtl_can_merge_blocks): Modify to test blocks for jumps that cross
section boundaries.
(try_redirect_by_replacing_jump): Modify to not attempt on jumps that
cross section boundaries.
(commit_one_edge_insertion): Add code so newly created basic block
ends up in correct (hot or cold) section. Modify to disallow
insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
(rtl_verify_flow_info_1): Add code to verify that no fall_thru edge
crosses section boundaries.
(cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
cross section boundaries.
(force_nonfallthru_and_redirect): Modify to make sure new basic block
ends up in correct section, with correct notes attached.
* common.opt (freorder-blocks-and-partition): Add new flag for this
optimization.
* dbxout.c (dbx_function_end): Add code to make sure scope labels at
the end of functions are written into the correct (hot or cold)
section.
(dbx_source_file): Add code so writing debug file information
doesn't incorrectly change sections.
* defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
in partitioning hot/cold basic blocks into separate sections.
(SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
section partitioning.
(HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
conditional branches can span all of memory.
(HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
unconditional branches can span all of memory.
* final.c (scan_ahead_for_unlikely_executed_note): New function.
(final_scan_insn): Add code to check for NOTE instruction indicating
whether basic block belongs in hot or cold section, and to make sure
the current basic block is being written to the appropriate section.
Also added code to ensure that jump table basic blocks end up in the
correct section.
* flags.h (flag_reorder_blocks_and_partition): New flag.
* ifcvt.c (find_if_case_1): Modify to not attempt if conversion if
one of the branches has a jump that crosses between sections.
(find_if_case_2): Likewise.
(ifcvt): Modify to not attempt to mark loop exit edges after
hot/cold partitioning has occurred.
* opts.c (decode_options): Code to handle new flag,
flag_reorder_blocks_and_partition; also to turn it off if
flag_exceptions is on.
(common_handle_option): Code to handle new flag,
flag_reorder_blocks_and_partition.
* output.h (unlikely_text_section): New extern function declaration.
(in_unlikely_text_section): New extern function declaration.
* passes.c (rest_of_handle_stack_regs): Add
flag_reorder_blocks_and_partition as an 'or' condition for calling
reorder_basic_blocks.
(rest_of_handle_reorder_blocks): Add flag_reorder_blocks_and_partition
as an 'or' condition for calling reorder_basic_blocks.
(rest_of_compilation): Add call to partition_hot_cold_basic_blocks.
* print-rtl.c (print_rtx): Add code for handling new note,
NOTE_INSN_UNLIKELY_EXECUTED_CODE
* rtl.c (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
(REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
cross between section boundaries.
* rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note instruction,
indicating the basic block containing it belongs in the cold section.
(REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
between hot and cold sections.
* toplev.c (flag_reorder_blocks_and_partition): Add code to
initialize this flag, and to tie it to the command-line option
freorder-blocks-and-partition.
* varasm.c (cfglayout.h): Add new include statement.
(unlikely_section_label_printed): New global variable, used for
determining when to output section name labels for cold sections.
(in_section): Add in_unlikely_executed_text to enum data structure.
(text_section): Modify code to use SECTION_FORMAT_STRING and
NORMAL_TEXT_SECTION_NAME macros.
(unlikely_text_section): New function.
(in_unlikely_text_section): New function.
(function_section): Add code to make sure beginning of function is
written into correct section (hot or cold).
(assemble_start_function): Add code to make sure stuff is written to
the correct section.
(assemble_zeros): Add in_unlikely_text_section as an 'or' condition
to an if statement that was checking 'in_text_section'.
(assemble_variable): Add 'in_unlikely_text_section' as an 'or'
condition to an if statement that was checking 'in_text_section'.
(default_section_type_flags_1): Add check: if in cold section
flags = SECTION_CODE.
* config/darwin.c (darwin_asm_named_section): Modify to use
SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
* config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
specifically for the i386.
(HAS_LONG_UNCOND_BRANCH): Defined this macro specifically for the i386.
* config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
text string to something more informative.
(NORMAL_TEXT_SECTION_NAME): Add new definition.
(SECTION_FORMAT_STRING): Add new definition.
* config/rs6000/rs6000.c (rs6000_assemble_integer): Add
'!in_unlikely_text_section' as an 'and' condition to an if statement
that was already checking '!in_text_section'.
* config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
sure these are properly defined for linux on ppc.
* doc/invoke.texi (freorder-blocks-and-partition): Add documentation
for this new flag.
* doc/rtl.texi (REG_CROSSING_JUMP): Add documentation for new
reg_note.
* doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
these new macros.
configure.in: Switch to modern style for AC_INIT, AC_OUTPUT.
* configure.in: Switch to modern style for AC_INIT, AC_OUTPUT.
Sort file into sections. Remove dnl where appropriate. Fix
other style issues.
* configure: Regenerate.
configure.in: Replace old AC_PROG_CC hack with new one.
* configure.in: Replace old AC_PROG_CC hack with new one.
Define toplevel_srcdir in terms of srcdir, not top_srcdir (there
are no subdirectory output files, so this is fine). Change prereq
to autoconf 2.59.
* aclocal.m4: Include ../config/no-executables.m4.
* configure: Regenerate with autoconf 2.59.
* configure.in: Improve comments on gthread_cflags. Improve m4
quotation, and replace 'if test' with 'case', for --enable-objc-gc.
* configure: Regenerate.
configure.in: Move PACKAGE and VERSION settings up top.
* configure.in: Move PACKAGE and VERSION settings up top. Remove
unused call to AC_PROG_LN_S. Default RANLIB to ':'. Remove
redundant checks for values of RANLIB, AR, INSTALL.
* configure: Regenerate.
configure.in: Clean up handling of --enable-version-specific-runtime-libs and related...
* configure.in: Clean up handling of
--enable-version-specific-runtime-libs and related variables;
replace 'if test' with 'case' where reasonable. Fix comments.
Remove useless libstdcxx_interface.
* configure: Regenerate.
* configure.in: Use _GCC_TOPLEV_NONCANONICAL_TARGET.
Replace uses of target_alias with target_noncanonical.
* aclocal.m4: Include ../config/acx.m4.
* configure: Regenerate.
* Makefile.in: Replace uses of target_alias with target_noncanonical.
Fix copyright statement.
* configure.in: Hand-inline bulky, confusing macros from
aclocal.m4. Replace references to "GNU Objective C" with "GCC".
Update copyright notice. Remove stuff for automake, which isn't
used in this directory. Remove emacs local variables.
* aclocal.m4: Remove hand-inlined macros. Update copyright notice.
* configure: Regenerate.
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.