Andreas Tobler [Wed, 22 Sep 2004 20:59:16 +0000 (22:59 +0200)]
configure.ac: Introduce AC_C_BIGENDIAN_CROSS for WORDS_BIGENDIAN.
2004-09-22 Andreas Tobler <a.tobler@schweiz.ch>
* configure.ac: Introduce AC_C_BIGENDIAN_CROSS for WORDS_BIGENDIAN.
* configure: Regenerate.
* include/config.h.in: Likewise.
* jni/gtk-peer/gtkpeer.h (SWAPU32): Introduce macro to swap pixels.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.c: Moved SWAPU32
macro to gtkpeer.h.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_getImagePixels): Convert
pixels from 0xBBGGRRAA to 0xAARRGGBB only on Little Endian
architectures.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c (area_updated):
Likewise.
cp-tree.h (unemitted_tinfo_decls): Make a VEC(tree).
* cp-tree.h (unemitted_tinfo_decls): Make a VEC(tree).
* decl2.c (cp_finish_file): Adjust tinfo decl emission loop.
* rtti.c (unemitted_tinfo_decls): Make a VEC(tree).
(init_rtti_processing): Initialize it to something realistic.
(get_tinfo_decl): Adjust pushing the new decl.
* config/s390/s390-protos.h (s390_emit_tpf_eh_return): Add prototype.
* config/s390/s390.c (s390_emit_tpf_eh_return): New function.
* config/s390/s390.h (TARGET_TPF): New macro.
* config/s390/s390.md ("eh_return"): New expander.
* config/s390/t-tpf (LIB2ADDEH): Use unwind-dw2-fde.c rather than
unwind-dw2-fde-glibc.c. Add config/s390/tpf-eh.c.
(LIB2ADDEHDEP): Remove unwind-dw2-fde.c.
* config/s390/tpf.h (TARGET_TPF): Define to 1.
(STACK_POINTER_OFFSET): Increase to 448.
(TARGET_DEFAULT): Set -mtpf-trace on as default.
(TPF_LOC_DIFF_OFFSET): New macro.
(ASM_PREFERRED_EH_DATA_FORMAT): Redefine to always use absolute
encoding.
(__isPATrange): Add prototype.
(MD_FALLBACK_FRAME_STATE_FOR): Define.
* config/s390/tpf-eh.c: New file.
Diego Novillo [Wed, 22 Sep 2004 11:40:12 +0000 (11:40 +0000)]
fold-const.c (fold): Avoid non INTEGER_TYPEs when widening operands in an integer comparison.
* fold-const.c (fold): Avoid non INTEGER_TYPEs when widening
operands in an integer comparison.
* tree-cfg.c (find_taken_edge): Call fold() to determine
whether the predicate is known.
aclocal.m4: Import AM_PROG_CC_C_O and AM_AUX_DIR_EXPAND.
gcc/
2004-09-22 Kelley Cook <kcook@gcc.gnu.org>
* aclocal.m4: Import AM_PROG_CC_C_O and AM_AUX_DIR_EXPAND.
* configure.ac: Call AM_PROG_CC_C_O instead of AC_PROG_CC_C_O.
Create build and doc directories along with the language directories.
Don't create doc directory separately.
* configure: Regenerate.
* Makefile.in: Create all object and executables files built
with the build compiler in a build/ directory.
(genobjnames): Add missing build objects.
(STAGESTUFF): Don't stage the gen* programs.
(ggc-none.o): Define dependencies for the target compiler.
(build-print-rtl.o): Rename to build/print-rtl.o.
(build-errors.o): Rename to build/errors.o.
(build-varray.o): Rename to build/varray.o.
(maintainerclean): Delete the contents of the build directory.
($(genobjs): %.o): Explicitly use -o.
(build/insn-conditions.o): Delete specfic rule to use generic rule.
(build/gengtype-lex.o): Likewise.
(build/gengtype-yacc.o): Likewise.
(build/gcov-iov.o): Likewise.
Ziemowit Laski [Wed, 22 Sep 2004 06:11:20 +0000 (06:11 +0000)]
cp-lang.c (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Moved here from cp-objcp-common.h.
[gcc/cp/ChangeLog]
2004-09-21 Ziemowit Laski <zlaski@apple.com>
* cp-lang.c (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Moved here from
cp-objcp-common.h.
(objcp_tsubst_copy_and_build): Reformat function signature.
* cp-objcp-common.h (objcp_tsubst_copy_and_build): Likewise.
(LANG_HOOKS_FOLD_OBJ_TYPE_REF): Moved to cp-lang.c.
Jeff Law [Wed, 22 Sep 2004 04:12:01 +0000 (22:12 -0600)]
tree-ssa-dom.c (opt_stats): Move so that it lives just after the opt_stats_d structure.
* tree-ssa-dom.c (opt_stats): Move so that it lives just after
the opt_stats_d structure.
(vrp_data): Change from a varray into a hash table.
(vrp_hash_elt): New structure for elements in the vrp hash table.
(vrp_hash, vrp_eq):New functions for hashing and testing equality
in the vrp hash table.
(tree_ssa_dominator_optimize): Initialize VRP_DATA. Reorganize
initialization slightly to make it easier to read. No longer need
to grow/clear the varray. Instead empty and delete the hash table.
(dom_opt_finalize_block): Update due to change of VRP_DATA from
a varray to a hash table.
(simplify_cond_and_loop_avail_expr, record_range): Similarly.
Jeff Law [Wed, 22 Sep 2004 04:07:23 +0000 (22:07 -0600)]
tree-ssa-ccp.c (get_default_value): If we have a constant value recorded for an SSA_NAME...
* tree-ssa-ccp.c (get_default_value): If we have a constant
value recorded for an SSA_NAME, then use that constant as
the initial lattice value.
(substitute_and_fold): Transfer equivalences discovered into
SSA_NAME_EQUIV.
* parser.c (cp_lexer_peek_token, cp_lexer_consume_token):
Don't handle CPP_PRAGMA tokens specially.
(cp_lexer_handle_pragma): Use cp_lexer_consume_token. Don't
purge the token; do clear token->value after processing. Add
assertion at beginning that token->value is nonzero.
(cp_parser_statement, cp_parser_declaration_seq_opt): Handle
CPP_PRAGMA as a full statement or declaration in its own right.
reg-notes.def (REG_DEP_TRUE): New entry, place first so it gets value 0.
* reg-notes.def (REG_DEP_TRUE): New entry, place first so it
gets value 0.
* print-rtl.c (print_rtx): Print the name of a REG_NOTE even
if it has value 0.
Roger Sayle [Tue, 21 Sep 2004 16:20:12 +0000 (16:20 +0000)]
re PR c++/7503 ((x < Y ? X : Y) used for assignment causes wrong code)
PR c++/7503
* tree.c (lvalue_p_1): Disallow MIN_EXPR and MAX_EXPR as lvalues
if either operand has side-effects.
* typeck.c (rationalize_conditional_expr): Assert that neither
operand of MIN_EXPR or MAX_EXPR has side-effects.
(build_modify_expr): Add support for MIN_EXPR and MAX_EXPR.
Check that the "lhs" is a valid lvalue, i.e. that neither operand
of a MIN_EXPR or MAX_EXPR has a side-effect.
* g++.dg/opt/pr7503-1.C: New testcase for COND_EXPR lvalues.
* g++.dg/opt/pr7503-2.C: New testcase for <? and >? lvalues.
* g++.dg/opt/pr7503-3.C: New testcase for invalid <? lvalue errors.
* g++.dg/opt/pr7503-4.C: New testcase for <?= and >?= assignments.
* g++.dg/opt/pr7503-5.C: New testcase for side-effects with <?=.
Daniel Berlin [Tue, 21 Sep 2004 15:42:44 +0000 (15:42 +0000)]
c-typeck.c (build_function_call): Give name of object we are attempting to call in error message.
2004-09-21 Daniel Berlin <dberlin@dberlin.org>
* c-typeck.c (build_function_call): Give name of object
we are attempting to call in error message.
* c-objc-common.c (c_tree_printer): Call pp_expression,
not return false, for 'E' case.
* decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
ensures proper handling of types with rep clauses, which might have
their TYPE_SIZE set already.
Robert Dewar [Tue, 21 Sep 2004 15:31:03 +0000 (15:31 +0000)]
decl.c (gnat_to_gnu_type, [...]): Wrap modular packed array types in both little- and big-endian cases.
2004-09-21 Robert Dewar <dewar@gnat.com>
* decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
packed array types in both little- and big-endian cases. This change
ensures that we no longer count on the unused bits being initialized
for such types (and in particular ensures that equality testing will
only read the relevant bits).
Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
These changes mean that we no longer need to initialize small packed
arrays.
(gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
optimization to an LJM field as to its parent field.
* ada-tree.h:, trans.c, utils.c, utils2.c:
Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
Paolo Carlini [Tue, 21 Sep 2004 09:06:08 +0000 (09:06 +0000)]
PR libstdc++/12882 (cont)
2004-09-21 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/12882 (cont)
* acinclude.m4 (GLIBCXX_CHECK_LFS): Check for fstat64 too.
* configure: Regenerate.
* config/io/basic_file_stdio.cc (__basic_file<>::showmanyc): When
_GLIBCXX_USE_LFS use fstat64 and lseek64, thus providing a non
trivial showmanyc for large files too.
Jeff Law [Tue, 21 Sep 2004 03:19:00 +0000 (21:19 -0600)]
tree-ssanames.c (make_ssa_name): No longer need to clear, then initialize key elements here.
* tree-ssanames.c (make_ssa_name): No longer need to clear, then
initialize key elements here.
(release_ssa_name): Zero the released SSA_NAME here.
* tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): New macros.
(struct tree_ssa_name): Add new "equiv" field.
* tree-ssa-dom.c (const_and_copies): Kill the global varray.
(tree_ssa_dominator_optimize): No longer allocate, resize or
clear CONST_AND_COPIES.
(get_value_for, set_value_for): Kill.
(thread_across_edge): Get/set the equivalency using
SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
(restore_vars_to_original_value): Likewise.
(record_equivalences_from_phis): Likewise.
(record_dominating_conditions): Likewise.
(record_const_or_copy, record_equality): Likewise.
(lookup_avail_expr): Likewise.
(record_equivalences_from_stmt, cprop_operand): Likewise.
(cprop_into_successor_phis): No longer need to pass around
CONST_AND_COPIES. Callers updated. Get equivalences via
SSA_NAME_EQUIV.
(cprop_into_phis): Likewise.
Co-Authored-By: Jan Hubicka <jh@suse.cz>
From-SVN: r87787
Matt Austern [Tue, 21 Sep 2004 02:22:45 +0000 (02:22 +0000)]
c-common.c (fix_string_type): Build the unqualified array type unconditionally...
2004-09-20 Matt Austern <austern@apple.com>
Zack Weinberg <zack@codesourcery.com>
* c-common.c (fix_string_type): Build the unqualified array
type unconditionally, then use c_build_qualified_type to get
the proper const-qualified variant, and set its
TYPE_MAIN_VARIANT to refer to the unqualified type.
* c-lex.c (c_lex_return_raw_string): New global.
(c_lex_with_flags): Honor it.
* c-pragma.h: Declare it.
cp:
* decl.c (make_rtl_for_nonlocal_decl, start_preparsed_function):
Apply lbasename to input_filename before passing to get_fileinfo.
* semantics.c (begin_class_definition): Likewise.
* lex.c (handle_pragma_interface): Apply get_fileinfo to the
correct filename. Rename variables to be less confusing.
(handle_pragma_implementation): Likewise. Disable "appears
after file is included" diagnostic.
* parser.c (struct cp_token): Add in_system_header fiag.
(CP_TOKEN_BLOCK_NUM_TOKENS, struct cp_token_block)
(CP_TOKEN_BUFFER_SIZE, cp_token_cache_push_token)
(CPP_NONE, cp_lexer_read_token): Delete.
(struct cp_lexer): Remove first_token, string_tokens,
main_lexer_p fields. Clarify comments.
(struct cp_token_cache): Now just a pair of pointers.
(CP_LEXER_BUFFER_SIZE): New #define.
(CPP_PURGED): New fake token type.
(cp_lexer_new_from_token_array, cp_lexer_destroy)
(cp_lexer_peek_token_emit_debug_info, cp_lexer_skip_purged_tokens)
(cp_lexer_handle_pragma, cp_token_cache_new, cp_parser_string_literal):
New functions.
(cp_lexer_new_from_tokens): Now a simple wrapper around
cp_lexer_new_from_token_array.
(cp_lexer_set_source_position_from_token): Also update
in_system_header.
(cp_lexer_next_token, cp_lexer_prev_token, cp_lexer_advance_token):
Don't wrap round.
(cp_lexer_token_difference): Dont handle wrapping round.
(cp_lexer_new_main): Enable pragma deferral and raw strings,
read the entire translation unit through c_lex_with_flags into
this lexer's buffer, then turn raw strings back off again.
(cp_lexer_grow_buffer): Adjust for buffer no longer being circular.
(cp_lexer_get_preprocessor_token): No need to handle not being
the main lexer. Set token->in_system_header too.
(cp_lexer_peek_token): Skip purged tokens. Feed pragma tokens
to cp_lexer_handle_pragma. No need to call cp_lexer_read_token.
(cp_lexer_peek_nth_token): Likewise.
(cp_lexer_purge_token): Mark the token PURGED, don't shift all
the other tokens down.
(cp_lexer_purge_tokens_after): Likewise.
(cp_lexer_save_tokens, cp_lexer_rollback_tokens): Don't worry
about there being no tokens.
(cp_lexer_print_token): Revise to give useful information on
all tokens.
(struct cp_parser): Add field translate_strings_p.
(cp_parser_new): Initialize it.
(cp_parser_translation_unit): Destroy the lexer when done.
(cp_parser_parameter_declaration): Restructure saving of
default arguments.
(cp_parser_save_member_function_body): Likewise.
(cp_parser_check_for_invalid_template_id)
(cp_parser_nested_name_specifier_opt, cp_parser_template_id):
Adjust calls to cp_lexer_advance_token.
(cp_parser_skip_to_closing_parenthesis, cp_parser_declaration):
No need to fiddle c_lex_string_translate.
(cp_parser_primary_expression, cp_parser_linkage_specification)
(cp_parser_asm_definition, cp_parser_asm_specification_opt)
(cp_parser_asm_operand_list, cp_parser_asm_clobber_list)
Use cp_parser_string_literal.
(cp_parser_attribute_list): Save and restore
parser->translate_strings_p, not c_lex_string_translate.
(cp_parser_cache_group): Delete.
(cp_parser_cache_group_1): Rename cp_parser_cache_group. Do
not take a cache argument.
Kaz Kojima [Mon, 20 Sep 2004 23:10:00 +0000 (23:10 +0000)]
sh.c (sh_expand_prologue): Add a REG_FRAME_RELATED_EXPR note to pretend a direct save from the original...
* config/sh/sh.c (sh_expand_prologue): Add a REG_FRAME_RELATED_EXPR
note to pretend a direct save from the original register when an
intermediate register is used for the save.
Giovanni Bajo [Mon, 20 Sep 2004 23:05:40 +0000 (23:05 +0000)]
re PR c++/14179 (out of memory while parsing array with many initializers)
PR c++/14179
* decl.c (reshape_init): Extract array handling into...
(reshape_init_array): New function. Use integers instead of trees
for indices. Handle out-of-range designated initializers.
Jan Hubicka [Mon, 20 Sep 2004 20:41:20 +0000 (20:41 +0000)]
cgraph.c (cgraph_unnest_node): New function.
* cgraph.c (cgraph_unnest_node): New function.
(c_finalize): Rename to ....
(c_warn_unused_result_recursivly): ... this one; do only the warning
(finish_function): Finalize the toplevel function; do not lower nested tree.
* cgraph.h (cgraph_unnest_node): Declare.
* cgraphunit.c (decide_is_function_needed): Do not use cgraph
nestedness datastructure.
* cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs.
* reload1.c (set_label_offsets): Fix call of set_label_offsets.
* tree-nested.c (finlize_nesting_tree_1): Use un-nesting code.
Jan Hubicka [Mon, 20 Sep 2004 20:38:29 +0000 (22:38 +0200)]
re PR middle-end/16460 (ICE when compiling glibc (ld-ctype.c))
PR middle-end/16460
* cgraph.c (cgraph_unnest_node): New function.
(c_finalize): Rename to ....
(c_warn_unused_result_recursivly): ... this one; do only the warning
(finish_function): Finalize the toplevel function; do not lower nested tree.
* cgraph.h (cgraph_unnest_node): Declare.
* cgraphunit.c (decide_is_function_needed): Do not use cgraph
nestedness datastructure.
* cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs.
* reload1.c (set_label_offsets): Fix call of set_label_offsets.
* tree-nested.c (finlize_nesting_tree_1): Use un-nesting code.
* utils.c (gnat_finalize): Remove.
(end_subprog_body): Directly call cgraph_finalize_function;
do not lower the nested functions.
* trans-decl.c (build_entry_thunks): Finalize the function; do not lower
tree.
(gfc_generate_function_code): Likewise.
Jan Hubicka [Mon, 20 Sep 2004 18:43:30 +0000 (20:43 +0200)]
predict.c (return_prediction): New function.
* predict.c (return_prediction): New function.
(apply_return_prediction): Likewise.
(tree_bb_level_predictions): Likewise.
(tree_estimate_probability): Add noreturn exit edges; call
bb_level_predictions; fix logic of return heuristics.
(predict_paths_leading_to): Rescuesce from old CVS version of
process_note_prediction function.
* predict.def (PRED_TREE_EARLY_RETURN): New predictor.
Robert Dewar [Mon, 20 Sep 2004 12:07:47 +0000 (12:07 +0000)]
re PR ada/17540 (Duplicate symbols while building Ada)
2004-09-20 Robert Dewar <dewar@gnat.com>
PR ada/17540
* freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
if an address clause is present, since that means that the Import
should be ignored.
Ira Rosen [Mon, 20 Sep 2004 07:17:06 +0000 (07:17 +0000)]
vect-13.c: Added xfail for non ppc platforms.
2004-09-20 Ira Rosen <irar@il.ibm.com>
* gcc.dg/vect/vect-13.c: Added xfail for non ppc platforms.
* gcc.dg/vect/vect-74.c: Split into 3 tests (vect-79.c, vect-80.c).
* gcc.dg/vect/vect-62.c: New testcase.
* gcc.dg/vect/vect-63.c: New testcase.
* gcc.dg/vect/vect-64.c: New testcase.
* gcc.dg/vect/vect-65.c: New testcase.
* gcc.dg/vect/vect-66.c: New testcase.
* gcc.dg/vect/vect-67.c: New testcase.
* gcc.dg/vect/vect-68.c: New testcase.
* gcc.dg/vect/vect-69.c: New testcase.
* gcc.dg/vect/vect-79.c: New testcase.
* gcc.dg/vect/vect-80.c: New testcase.
Roger Sayle [Mon, 20 Sep 2004 00:58:42 +0000 (00:58 +0000)]
mh-x86omitfp: New host makefile fragment.
* config/mh-x86omitfp: New host makefile fragment. Add
-fomit-frame-pointer to the default BOOT_CFLAGS.
* configure.in: Use it to speed up bootstrap on some IA-32 hosts.
* configure: Regenerate.