Roger Sayle [Fri, 8 Aug 2003 20:23:06 +0000 (20:23 +0000)]
* tree.h (get_identifier) Define a macro form of get_identifier
that calls get_identifier_with_length when the string is constant.
(get_identifier_with_length): Change type of second argument to
size_t in prototype.
* stringpool.c (get_identifier): Undefine the macro before giving
the function definition.
(get_identifier_with_length): Change type of second argument to
size_t in function definition.
* hashtable.c (calc_hash): Change type of second argument to size_t.
(ht_lookup): Change type of third argument to size_t. Reorganize
to speed-up the cases where the hash table slot is empty, or the
first probe matches (i.e. there isn't a collision).
* hashtable.h (ht_lookup): Adjust function prototype.
pa.c (update_total_code_bytes): Use new macro IN_NAMED_SECTION_P.
* pa.c (update_total_code_bytes): Use new macro IN_NAMED_SECTION_P.
(attr_length_millicode_call): Likewise.
(attr_length_call): Likewise. Revise some maximum insn lengths.
(attr_length_indirect_call): Likewise.
(output_call): Fix thinko that added extra nop.
* pa.h (IN_NAMED_SECTION_P): Define.
J"orn Rennecke [Thu, 7 Aug 2003 22:40:07 +0000 (22:40 +0000)]
sh.c (calc_live_regs): If the return address pointer is live, force pr live.
* sh.c (calc_live_regs): If the return address pointer is live,
force pr live.
(sh5_schedule_saves): Exclude PR_MEDIA_REG from being a temp register
for saves / restores.
(sh_expand_epilogue): If sh_media_register_for_return returns a
register number, flag the instructions that restores PR_MEDIA_REG
as possibly dead.
Remove dead update of offset.
(sh_get_pr_initial_val): Use UNSPEC_RA if we don't know yet if
we can use the result of get_hard_reg_initial_val.
* sh.md (UNSPEC_RA): New constant.
(movsi_i_lowpart+1): Changed into a define_insn_and_split, named:
(load_ra). Handle UNSPEC_RA.
(sibcall_media): Use PR_MEDIA_REG.
Rainer Orth [Thu, 7 Aug 2003 21:34:19 +0000 (21:34 +0000)]
configure.in: Set INCLUDES to absolute path.
boehm-gc:
* configure.in: Set INCLUDES to absolute path.
Save $INCLUDES in boehm-cflags, too.
Set INCLUDES so it's available to config.status.
* configure: Regenerate.
Aldy Hernandez [Thu, 7 Aug 2003 12:49:57 +0000 (12:49 +0000)]
Make-lang.in (cp/call.o): Add dependency for target.h.
2003-08-07 Aldy Hernandez <aldyh@redhat.com>
* cp/Make-lang.in (cp/call.o): Add dependency for target.h.
* cp/call.c (standard_conversion): Support opaque types.
Include target.h.
(strip_top_quals): Use cp_build_qualified_type instead of
TYPE_MAIN_VARIANT.
* cp/typeck.c (convert_for_assignment): Support opaque types.
Zack Weinberg [Thu, 7 Aug 2003 03:12:09 +0000 (03:12 +0000)]
c-decl.c (builtin_decls): Replace with first_builtin_decl and last_builtin_decl.
* c-decl.c (builtin_decls): Replace with first_builtin_decl
and last_builtin_decl.
(c_init_decl_processing): Initialize both.
(c_reset_state): Iterate from first_builtin_decl to
last_builtin_decl inclusive to reintroduce builtins.
Jacob Gladish [Thu, 7 Aug 2003 01:13:46 +0000 (01:13 +0000)]
natPlainSocketImplPosix.cc (connect): Pass the FD as a ready-to-write argument to _Jv_Select.
* java/net/natPlainSocketImplPosix.cc (connect): Pass the FD as a
ready-to-write argument to _Jv_Select. Reset the socket back to
non-blocking state after connecting.
(accept): Pass the FD as a ready-to-write argument to _Jv_Select.
Throw SocketTimeoutException not InterruptedIOException.
(read): Throw SocketTimeoutException not InterruptedIOException.
David Mosberger [Wed, 6 Aug 2003 21:08:29 +0000 (21:08 +0000)]
extend.texi (Function Attributes): Document the IA-64 version of the "model" attribute.
* doc/extend.texi (Function Attributes): Document the IA-64 version
of the "model" attribute.
* config/ia64/ia64.h (SYMBOL_FLAG_SMALL_ADDR): New macro.
(SYMBOL_REF_SMALL_ADDR_P): Ditto.
(PREDICATE_CODES): Mention "small_addr_symbolic_operand".
* config/ia64/ia64.c (ia64_handle_model_attribute): New function.
(ia64_encode_section_info): Likewise.
(ia64_attribute_table): Add "model" attribute.
(TARGET_ENCODE_SECTION_INFO): Define.
(small_addr_symbolic_operand): New function.
(got_symbolic_operand): Return 0 for a symbolref to an object
in the small address area.
(enum ia64_addr_area): New type.
(small_ident1): New variable.
(small_ident2): Likewise.
(init_idents): New function.
(ia64_get_addr_area): Likewise.
(ia64_encode_addr_area): Likewise.
(ia64_encode_section_info): Likewise.
(ia64_expand_load_address): For symbolic references to objects in
the small-address-area, load the address via gen_rtx_SET() (which,
eventually, will expand into "addl").
Per Bothner [Wed, 6 Aug 2003 19:34:43 +0000 (19:34 +0000)]
line-map.h (fileline): New typedef.
* line-map.h (fileline): New typedef.
(struct line_map, linemap_add, linemap_lookup): Use it.
* input.h (struct location_s): Comment notes that long-term we want
to replace it by fileline.
Fix SHcompact exception handling:
* sh.c (sh_get_pr_initial_val): If PR is or miight be clobbered
by the prologue, return a MEM with return_address_pointer_rtx
as address.
* sh.h (HARD_REGNO_MODE_OK): PR is OK for SImode.
(RETURN_ADDR_OFFSET): Don't define.
(SH_DBX_REGISTER_NUMBER): Use SHmedia numbers for SHmedia
registers that are visible in compact mode. Show that SHmedia
registers still exist in compact mode, even if there are not
readily accessible.
(ASM_PREFERRED_EH_DATA_FORMAT): Supply DW_EH_PE_indirect
if GLOBAL. Use DW_EH_PE_textrel (nominally) for CODE,
and DW_EH_PE_pcrel for pic data.
(ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): If DW_EH_PE_textrel,
set SYMBOL_FLAG_FUNCTION in symbol, and actually use
DW_EH_PE_pcrel / DW_EH_PE_absptr encoding.
(ALLOCATE_INITIAL_VALUE): Put PR on stack if prologue clobbers it.
* sh.md (movsi_media-1): New splitter.
Phil Edwards [Tue, 5 Aug 2003 20:54:43 +0000 (20:54 +0000)]
acinclude.m4 (GLIBCXX_ENABLE_SJLJ_EXCEPTIONS): Put down the crack pipe...
2003-08-05 Phil Edwards <pme@gcc.gnu.org>
* acinclude.m4 (GLIBCXX_ENABLE_SJLJ_EXCEPTIONS): Put down the crack
pipe, open the window to let out the fumes, redo the option-handling
logic to properly execute the detection test.
* aclocal.m4, configure: Regenerate.
Tom Tromey [Tue, 5 Aug 2003 19:50:54 +0000 (19:50 +0000)]
Method.java: Updated status comment.
* java/lang/reflect/Method.java: Updated status comment.
Imported javadoc from Classpath and re-ordered methods.
* java/lang/reflect/Constructor.java: Reindented. Updated
status comment. Imported javadoc from Classpath and re-ordered
methods.
Tom Tromey [Tue, 5 Aug 2003 18:47:22 +0000 (18:47 +0000)]
re PR java/11600 (CloneNotSupportedException not checked on super.clone())
Fix for PR java/11600:
* parse.y (java_complete_lhs): See whether we're calling a method
on an array.
(check_thrown_exceptions): Added `is_array_call' argument;
fixed `clone' checking; updated all callers.
Steven Bosscher [Tue, 5 Aug 2003 14:11:53 +0000 (14:11 +0000)]
tree.h (DID_INLINE_FUNC): Remove macro.
2003-08-05 Steven Bosscher <steven@gcc.gnu.org>
* tree.h (DID_INLINE_FUNC): Remove macro.
(DECL_DECLARED_INLINE_P): Move from c-tree.h and cp/cp-tree.h,
add tree check for FUNCTION_DECL.
(DECL_ESTIMATED_INSNS): Move from c-common.h and java/java-tree.h.
(struct tree_decl): Rename inlined_function_flag to
declared_inline_flag.
* c-common.h (c_lang_decl): Remove.
(DECL_ESTIMATED_INSNS): Remove.
* c-tree.h (struct lang_decl): Don't include c_lang_decl.
(DECL_DECLARED_INLINE_P): Remove.
* c-decl.c (grokdeclarator): Update comment. With -finline-functions,
do not reset DECL_DECLARED_INLINE_P. Don't use DID_INLINE_FUNC.
(finish_function): Make uninlinable a bool. Fixup call to
tree_inlinable_function_p() and fix some code style issues.
* cgraph.h (disgread_inline_limits): Fix spelling: `disregard'.
* cgraph.c (dump_cgraph): Likewise.
* cgraphunit.c (cgraph_decide_inlining): Likewise
(cgraph_finalize_compilation_unit): Likewise.
Also update call to tree_inlinable_function_p().
(cgraph_default_inline_p): Don't use DID_INLINE_FUNC. Instead
look at DECL_DECLARED_INLINE and reverse logic.
* print-tree.c (print_node): Likewise.
* toplev.c (rest_of_handle_inlining): Don't use DID_INLINE_FUNC.
* tree-inline.h (tree_inlinable_function_p): Make a bool. Update
prototype.
* tree-inline.c (inlinable_function_p): Split up in this function to
check for basic inlining inhibiting conditions, and new
limits_allow_inlining() function. Warn if inlining is impossible
because the inline candidate calls alloca or uses sjlj exceptions.
(limits_allow_inlining): this new function to check if the inlining
limits are satisfied. Throttle from currfn_max_inline_insns, not from
MAX_INLINE_INSNS_SINGLE. The latter only makes sense if
MAX_INLINE_INSNS_AUTO and MAX_INLINE_INSNS_SINGLE are equal.
Update prototypes.
(tree_inlinable_function_p): Make a bool. Update call to
inlinable_function_p
(expand_call_inline): Use limits_allow_inlining() when not in
unit-at-a-time mode to decide on inlining. Don't use DID_INLINE_FUNC,
instead see if the function was declared `inline'.
cp/
* cp-tree.h (struct lang_decl): Don't include c_lang_decl.
(DECL_DECLARED_INLINE_P): Remove.
* decl2.c (import_export_decl): Only look at DECL_DECLARED_INLINE_P
if decl is a FUNCTION_DECL. This never made sense, but now it is
required to avoid a tree check failure.
* decl.c (grokfndecl): Don't touch DID_INLINE_FUNC.
* optimize.c (maybe_clone_body): Likewise.
Phil Edwards [Tue, 5 Aug 2003 02:00:18 +0000 (02:00 +0000)]
Convert to new autotools.
2003-08-04 Phil Edwards <pme@gcc.gnu.org>
Convert to new autotools.
* acconfig.h: Update with correct names.
* configure.host (ATOMICITYH): Rename to atomicity_include_dir.
(qnx6.[12]*): 'q' comes before 's', not after 'w'.
* configure.in: Update. Split hardcoded cross-configury settings
out to...
* crossconfig.m4: ...here. New file. Contents untouched.
* acinclude.m4: Reorganize and rewrite as needed. Split large
chunks out to...
* linkage.m4: ...here. New file. Math and stdlib linkage tests.
Contents untouched.
* scripts/testsuite_flags.in: Update.
* Makefile.am: Remove unneeded AUTOMAKE_OPTIONS settings and other
variables (already generated by automake).
* include/Makefile.am: Ditto.
* libmath/Makefile.am: Ditto.
* libsupc++/Makefile.am: Ditto.
* po/Makefile.am: Ditto.
* src/Makefile.am: Ditto.
Roger Sayle [Mon, 4 Aug 2003 23:46:34 +0000 (23:46 +0000)]
re PR middle-end/11771 (Segfault with simple double arithmetics)
PR middle-end/11771
* fold-const.c (negate_expr_p <MINUS_EXPR>): Change to match the
logic in negate_expr, i.e. we don't invert (A-B) for floating
point types unless flag_unsafe_math_optimizations.
* gcc.c-torture/compile/20030804-1.c: New test case.
Roger Sayle [Mon, 4 Aug 2003 23:42:48 +0000 (23:42 +0000)]
fold-const.c (fold <PLUS_EXPR>): Transform x+x into x*2.0.
* fold-const.c (fold <PLUS_EXPR>): Transform x+x into x*2.0.
Optimize x*c+x and x+x*c into x*(c+1) and x*c1+x*c2 into x*(c1+c2)
for floating point expressions with -ffast-math.
(fold <MULT_EXPR>): Don't transform x*2.0 into x+x.
* expmed.c (expand_mult): Wrap long line. Expand x*2.0 as x+x.
mips.c (override_options): Disable -G on targets that have no .section support.
* config/mips/mips.c (override_options): Disable -G on targets that
have no .section support.
(mips_select_section): Use default_select_section for such targets.
Tom Tromey [Mon, 4 Aug 2003 19:06:24 +0000 (19:06 +0000)]
java-tree.h (METHOD_TRANSIENT): Removed.
* java-tree.h (METHOD_TRANSIENT): Removed.
* decl.c (pushdecl): Removed some dead code.
* class.c (get_access_flags_from_decl): Can't have transient
method.
(add_method_1): Can't have a transient method.
opts.c (decode_options): Do language-specific initialization for the global diagnostic context.
* opts.c (decode_options): Do language-specific initialization for
the global diagnostic context.
* langhooks-def.h (lhd_initialize_diagnostics): Declare.
(LANG_HOOKS_INITIALIZE_DIAGNOSTITCS): New macro.
(LANG_HOOKS_INITIALIZER): Adjust.
* langhooks.h (struct lang_hooks): Add new field
initialize_diagnostics.
* langhooks.c (lhd_initialize_diagnostics): Define.
Nathan Sidwell [Sun, 3 Aug 2003 14:19:00 +0000 (14:19 +0000)]
re PR c++/11766 (ICE in comp_ptr_ttypes_real)
cp:
PR c++/11766
* typeck.c (comp_ptr_ttypes_real): Don't loop on pointers to
member functions.
testsuite:
PR c++/11766
* g++.dg/expr/ptrmem1.C: New test.