Andrew Pinski [Mon, 22 Dec 2003 20:42:58 +0000 (20:42 +0000)]
re PR c++/5050 (template instantiation depth exceeds/maybe recursion problem)
2003-12-22 Andrew Pinski <pinskia@physics.uc.edu>
PR c++/5050
* tree.c (cp_start_inlining): Remove.
(cp_end_inlining): Remove.
* cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Do not define.
(LANG_HOOKS_TREE_INLINING_END_INLINING): Do not define.
* cp-tree.h (cp_start_inlining): Do not declare.
(cp_end_inlining): Do not declare.
PR c++/5050
* g++.dg/template/recurse1.C: New test.
Andrew Pinski [Mon, 22 Dec 2003 19:52:30 +0000 (19:52 +0000)]
emit-rtl.c (copy_rtx_if_shared): Add comment about its use of copy_rtx_if_shared_1.
* emit-rtl.c (copy_rtx_if_shared): Add comment about its use of
copy_rtx_if_shared_1.
(copy_rtx_if_shared_1): Add comment about what the function does.
Andrew Pinski [Mon, 22 Dec 2003 18:16:56 +0000 (18:16 +0000)]
re PR c/9163 (ICE in genrtl_compound_stmt at c-semantics.c:776 with c99 mode and checking enabled)
2003-12-22 Andrew Pinski <pinskia@physics.uc.edu>
PR c/9163
* c-decl.c (poplevel): Only set DECL_INITIAL of a current function
if it is non-null.
(finish_function): Check for error_mark_node or null on DECL_RESULT and
DECL_RESULT of fndecl.
(c_expand_body): Only expand when DECL_INITIAL of fndecl is not
error_mark_node and not null.
Ian Lance Taylor [Mon, 22 Dec 2003 15:45:12 +0000 (15:45 +0000)]
cp-demangle.c (CP_DYNAMIC_ARRAYS): Define if compiler supports dynamic arrays.
* cp-demangle.c (CP_DYNAMIC_ARRAYS): Define if compiler supports
dynamic arrays.
(struct d_operator_info): Add len field.
(struct d_builtin_type_info): Add len and java_len fields.
(struct d_standard_sub_info): Add simple_len, full_len, and
set_last_name_len fields.
(struct d_comp): Add len field to s_string.
(struct d_info): Add send, did_subs, and expansion fields.
(d_append_string_constant): Define.
(d_append_string): Remove. Change all users to use
d_append_string_constant or d_append_buffer instead.
(d_make_sub): Add len parameter. Change all callers.
(d_name): Increase expansion when substituting std::.
(d_unqualified_name): Increase expansion for an operator.
(d_number): Don't use multiplication for negative numbers.
(d_identifier): Make sure there are enough characters in the
string for the specified length. Adjust expansion for an
anonymous namespace.
(d_operators): Initialize len field.
(d_special_name, d_ctor_dtor_name): Increase expansion.
(d_builtin_types): Initialize len and java_len fields.
(d_type): Increase expansion for a builtin type.
(d_cv_qualifiers): Increase expansion for each qualifier.
(d_bare_function_type): Decrease expansion when removing single
void parameter.
(d_template_param): Increment did_subs.
(d_expression): Increase expansion for an operator.
(d_expr_primary): Decrease expansion for a type we will print
specially.
(standard_subs): Initialize new fields.
(d_substitution): Increment did_subs when doing a normal
substitution. Increase expansion for a special substitution.
(d_print): Add estimate parameter. Change all callers.
(d_print_comp) [D_COMP_NAME]: Handle C++ case inline.
(d_print_comp) [D_COMP_BINARY]: Use length to avoid strcmp call.
(d_print_java_identifier): Rename from d_print_identifier. Handle
only Java case. Change caller.
(d_init_info): Change return type to void. Change all callers.
Initialize send, did_subs, and expansion fields. Do not
initialize comps and subs fields.
(d_demangle): Ifdef CP_DYNAMIC_ARRAYS, allocate comps and subs
arrays on stack. Make an estimate of the length of the demangled
name. Ifdef CP_DEMANGLE_DEBUG, print estimation failures.
(is_ctor_or_dtor): Ifdef CP_DYNAMIC_ARRAYS, allocate comps and
subs arrays on stack.
Paolo Carlini [Mon, 22 Dec 2003 11:00:43 +0000 (11:00 +0000)]
locale_facets.tcc (num_get::_M_extract_int, [...]): According to 22.2.2.1.2...
2003-12-22 Paolo Carlini <pcarlini@suse.de>
* include/bits/locale_facets.tcc (num_get::_M_extract_int,
num_get::_M_extract_float): According to 22.2.2.1.2, p8-9,
first look for decimal_point and thousands_sep, when parsing
sign, leading zeros (and 0, Ox, 0X for integer types) too.
* testsuite/22_locale/num_get/get/char/12.cc: New.
* testsuite/22_locale/num_get/get/wchar_t/12.cc: Likewise.
* testsuite/22_locale/num_get/get/char/11.cc: Add a comment.
* testsuite/22_locale/num_get/get/wchar_t/11.cc: Likewise.
Mark Mitchell [Mon, 22 Dec 2003 08:03:15 +0000 (08:03 +0000)]
re PR c++/13438 (internal compiler error: tree check: expected identifier_node, have integer_cst in c_parse_error at c-common.c:5921)
PR c++/13438
* cp-tree.h (cp_tree_index): Remove CPTI_RECORD_TYPE,
CPTI_UNION_TYPE, CPTI_ENUM_TYPE.
(record_type_node): Remove.
(union_type_node): Likewise.
(enum_type_node): Likewise.
* decl.c: Remove mention of above tree nodes in comment.
* lex.c (cxx_init): Do not assign to record_type_node,
union_type_node, or enum_type_node. Simplify handling of
class_type_node.
pa.h (TRAMPOLINE_TEMPLATE): Shorten sequence when generating PA 2.0 code.
* pa.h (TRAMPOLINE_TEMPLATE): Shorten sequence when generating PA
2.0 code.
(TRAMPOLINE_CODE_SIZE, MIN_CACHELINE_SIZE): New defines.
(INITIALIZE_TRAMPOLINE): Rework to pass line length, and aligned start
and end addresses to I and D cache instruction patterns.
* pa.md (anddi3, iordi3): Change predicates of operands 1 and 2 to
and_operand and ior_operand, respectively. When generating 64-bit
code, only one operand needs to be a register operand.
(xordi3): Change predicates of operands 1 and 2 to register_operand.
(one_cmpldi2): Change predicate of operand 1 to register_operand.
(dcacheflush, icacheflush): Revise to flush an arbitrary number of
cache lines.
Josef Zlomek [Sat, 20 Dec 2003 16:31:12 +0000 (17:31 +0100)]
PR optimization/13430, PR optimization/12322
PR optimization/13430, PR optimization/12322
* bb-reorder.c (copy_bb_p): Do not allow block with many successors to
be copied.
(find_traces_1_round): Surround check for fake edges by
#ifdef ENABLE_CHECKING #endif.
Mohan Embar [Sat, 20 Dec 2003 15:33:24 +0000 (15:33 +0000)]
* gnu/java/nio/SelectorImpl.java
(selectThreadMutex): New field.
(selectThread): New field.
(unhandledWakeup): New field.
(implCloseSelector): Added skeleton code which
synchronizes as per Sun JRE JavaDoc.
(keys): Throw ClosedSelectorException if selector
is closed.
(selectNow): Added comment that we're faking out
an immediate select with a one-microsecond-timeout one.
(select): Use 0 instead of -1 for infinite timeout.
(implSelect): Changed comment in declaration.
(select): Added synchronized to method declaration.
Added synchronization and wakeup support as per Sun
JRE JavaDoc.
(selectedKeys): Throw ClosedSelectorException if selector
is closed.
(wakeup): Implemented.
(deregisterCancelledKeys): Synchronize on cancelled key
set before deregistering.
(register): Synchronize on key set before registering.
* java/nio/channels/spi/AbstractSelector.java
Added import for java.nio.channels.ClosedSelectorException.
(close): Added synchronized to method declaration.
(cancelledKeys): Throw ClosedSelectorException if selector
is closed.
(cancelKey): Synchronize on cancelled key set before key.
Guilhem Lavaux [Sat, 20 Dec 2003 12:28:25 +0000 (12:28 +0000)]
URLParseError.java: New file.
2003-12-20 Guilhem Lavaux <guilhem@kaffe.org>
* gnu/java/net/URLParseError.java: New file.
* gnu/java/net/protocol/jar/Handler.java
(parseURL): Throw URLParseError if needed, fix '/' handling.
* java/net/URL.java (URL): Catch URLParseError and
transform it into a MalformedURLException.
Eric Botcazou [Sat, 20 Dec 2003 07:40:24 +0000 (08:40 +0100)]
re PR other/7956 (unreadable error on -m64 with --disable-multilib)
PR other/7956
* genmultilib: New variable disable_multilib. Set it to 'yes'
if enable_multilib was set to 'no'. Emit DISABLE_MULTILIB
if disable_multilib was set to 'yes'.
* gcc.c: Include multilib.h before tm.h.
* config/sparc/sol2-bi.h (LINK_ARCH_SPEC): Emit an error
message for multiarch options if DISABLE_MULTILIB is set.
* config/sparc/sol2-gld-bi.h (LINK_ARCH_SPEC): Likewise.
Eric Botcazou [Sat, 20 Dec 2003 07:12:39 +0000 (08:12 +0100)]
re PR c/12085 (Internal compiler error in convert_move, at expr.c:504 with -O3 flag)
PR c/12085
* c-typeck.c (build_function_call): Issue a warning if a
function is called through an incompatible prototype and
replace the call by a trap in this case.
Per Bothner [Sat, 20 Dec 2003 06:32:32 +0000 (22:32 -0800)]
re PR c/13110 (error message includes extra blank line)
* langhooks.c (lhd_print_error_function): Fix for PR c/13110.
Don't do pp_newline; it causes an extra blank line.
* pretty-print.c (pp_base_flush): Clear pp_needs_newline.
Jason Merrill [Sat, 20 Dec 2003 03:21:25 +0000 (22:21 -0500)]
tree.c (get_unwidened): Decide whether to narrow a bitfield reference based on TYPE_SIZE...
* tree.c (get_unwidened): Decide whether to narrow a bitfield
reference based on TYPE_SIZE, not TYPE_PRECISION.
* cp/cvt.c (convert_to_void): Don't warn about the RHS of a comma
being useless if TREE_NO_UNUSED_WARNING is set.
* stmt.c (parse_output_constraint): Warn about in-out constraint
that doesn't allow a register.
(parse_input_constraint): Warn about matching constraint that
doesn't allow a register.
James E Wilson [Sat, 20 Dec 2003 02:39:43 +0000 (02:39 +0000)]
Patch for asm clobber of fp.
* flow.c (mark_set_regs, case PARALLEL): Scan loop forwards.
Add case for ASM_OPERANDS.
* global.c (global_alloc): Set regs_ever_live for regs_asm_clobbered
registers.
Kazu Hirata [Fri, 19 Dec 2003 23:27:05 +0000 (23:27 +0000)]
dwarfout.c: Remove uses of "register" specifier in declarations of arguments and local...
* dwarfout.c: Remove uses of "register" specifier in
declarations of arguments and local variables.
* gensupport.c: Likewise.
* local-alloc.c: Likewise.
* regclass.c: Likewise.
Carlo Wood [Fri, 19 Dec 2003 23:15:24 +0000 (23:15 +0000)]
* bits/demangle.h
namespace __gnu_cxx::demangler
(session<Allocator>::decode_encoding): Put the postfix
of the return type of (member) functions after the function
instead of after the return type.
Ian Lance Taylor [Fri, 19 Dec 2003 21:14:35 +0000 (21:14 +0000)]
re PR c++/13447 (Another demangler problem with method cv-qualifiers)
Fix for PR c++/13447:
* cp-demangle.c (enum d_comp_type): Add D_COMP_LOCAL_NAME.
(d_dump, d_make_comp): Handle D_COMP_LOCAL_NAME.
(is_ctor_dtor_or_conversion): Handle D_COMP_LOCAL_NAME like
D_COMP_QUAL_NAME.
(is_ctor_or_dtor): Likewise.
(d_local_name): Use D_COMP_LOCAL_NAME rather than
D_COMP_QUAL_NAME.
(d_print_comp) [D_COMP_LOCAL_NAME]: New.
(d_prinT_comp) [D_COMP_TYPED_NAME]: If the left tree is
D_COMP_LOCAL_NAME, pull any qualifiers off its right subtree.
(d_print_mod_list): Handle D_COMP_LOCAL_NAME.
* testsuite/demangle-expected: Add two test cases.
* cp-demangle.c (d_print_function_type): Clear the global modifier
list when printing the modifiers, not just when printing the
function parameters.
* testsuite/demangle-expected: Add two test cases.
Michael Koch [Fri, 19 Dec 2003 19:06:34 +0000 (19:06 +0000)]
ChannelInputStream.java: New file.
2003-12-19 Michael Koch <konqueror@gmx.de>
* gnu/java/nio/ChannelInputStream.java: New file.
* java/nio/channels/Channels.java (newInputStream): Implemented.
* java/nio/channels/FileChannelImpl.java
(readImpl): Only put data into buffer if something was read.
* Makefile.am (ordinary_java_source_files):
Added gnu/java/nio/ChannelInputStream.java.
* Makefile.in: Regenerated.
Paolo Carlini [Fri, 19 Dec 2003 18:14:22 +0000 (18:14 +0000)]
locale_facets.tcc (num_get::_M_extract_int, [...]): According to 22.2.2.1.2, p8-9, first look for decimal_point and thousands_sep.
2003-12-19 Paolo Carlini <pcarlini@suse.de>
* include/bits/locale_facets.tcc (num_get::_M_extract_int,
num_get::_M_extract_float): According to 22.2.2.1.2, p8-9,
first look for decimal_point and thousands_sep.
* testsuite/22_locale/num_get/get/char/11.cc: New.
* testsuite/22_locale/num_get/get/wchar_t/11.cc: Likewise.
Jakub Jelinek [Fri, 19 Dec 2003 14:00:53 +0000 (15:00 +0100)]
unwind-ia64.c (ia64_copy_rbs): New function.
* config/ia64/unwind-ia64.c (ia64_copy_rbs): New function.
(unw_access_gr): Only call ia64_rse_rnat_addr if addr is above
regstk_top.
(uw_frame_state_for): Handle locations inside bundles.
(uw_init_context_1): Initialize context->rnat.
Set context->regstk_top to lowest rbs address which has nat collection
in context->rnat.
(uw_install_context): Fix rnat restoring.
Restore ar.rsc to previous state.
* config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR,
MD_HANDLE_UNWABI): Handle unwinding through SA_ONSTACK frames.
* gcc.dg/cleanup-10.c: New test.
* gcc.dg/cleanup-11.c: New test.
Paolo Carlini [Fri, 19 Dec 2003 09:35:24 +0000 (09:35 +0000)]
locale_facets.tcc (num_get::_M_extract_float): When __found_sci becomes true stop eating thousands separators and the decimal...
2003-12-19 Paolo Carlini <pcarlini@suse.de>
* include/bits/locale_facets.tcc (num_get::_M_extract_float):
When __found_sci becomes true stop eating thousands separators
and the decimal radix separator.
* testsuite/22_locale/num_get/get/char/9.cc: New.
* testsuite/22_locale/num_get/get/wchar_t/9.cc: Likewise.
* config/locale/generic/c_locale.cc (__convert_to_v): Don't
check that *__sanity == '\0': parsing may stop earlier, still
be successful.
* config/locale/gnu/c_locale.cc: Likewise.
* testsuite/22_locale/num_get/get/char/10.cc: New.
* testsuite/22_locale/num_get/get/wchar_t/10.cc: Likewise.
* testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
Tweak in one place accordingly.