Neil Booth [Tue, 30 Jan 2001 19:19:40 +0000 (19:19 +0000)]
c-decl.c (c_expand_body): Check TYPE_SIZE_UNIT (ret_type) is not NULL.
* c-decl.c (c_expand_body): Check TYPE_SIZE_UNIT (ret_type)
is not NULL.
* toplev.c (decode_W_option): Update warn_larger_than
unconditionally for each processed switch.
* testsuite/gcc.dg/Wlarger-than.c: New test.
pa.c (pa_init_machine_status): Initialize pic_offset_table_save_rtx to NULL_RTX.
* pa.c (pa_init_machine_status): Initialize pic_offset_table_save_rtx
to NULL_RTX.
(hppa_expand_prologue): Delete code to save pic offset table register
in the function prologue.
* pa.h (PIC_OFFSET_TABLE_SAVE_RTX): Correct type in comment.
* pa.md (call, call_value, sibcall, sibcall_value): Save the pic offset
table register at the beginning of the function after the prologue.
Benjamin Kosnik [Tue, 30 Jan 2001 09:18:51 +0000 (09:18 +0000)]
Preliminary named locales.
2001-01-29 Benjamin Kosnik <bkoz@redhat.com>
Preliminary named locales.
* acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): New macro.
* aclocal.m4: Regenerate.
* configure.in: Use it.
* configure: Regerate.
* src/Makefile.am (sources): Add c++locale.cc.
(build_headers): Add c++locale.h.
* src/Makefile.in: Regenerate.
* config/c_locale_gnu.h: New file.
* config/c_locale_gnu.cc: New file. Non-inline member functions
for named locales, gnu-specific.
* config/c_locale_generic.h: New file.
* config/c_locale_generic.cc: New file. Non-inline member
functions for named locales, generic version.
* docs/html/configopts.html: Add documentation on new options.
* include/bits/localefwd.h (locale::_M_coalesce): New
function. Correctly put together multi-name locales.
(_Impl(const _Impl&, category, size_t)): Remove.
* src/localename.cc (locale::facet::_S_create_c_locale): Properly
create and error-check underlying locale object.
(locale::facet::_S_destroy_c_locale): Add, take care of properly
tearing down underlying locale object.
* include/bits/localefwd.h (locale::facet): Declare.
* testsuite/22_locale/members.cc: Don't test "fr_FR" locale for
correctness, as glibc apparently has incorrect info in it. Test
with it when it works again.....
* include/bits/localefwd.h (locale::_Impl::__vec_string):
Remove. Number of categories is fixed at six, so just simplify and
make this an array of strings.
(locale::_Impl::_M_has_name): Remove.
(locale::_Impl::_M_name): Remove.
(locale::_Impl::_M_category_names): Turns into...
(locale::_Impl::_M_names): ...this.
(locale::_Impl::_M_has_same_name()): New function.
* src/localename.cc (locale::_Impl::~_Impl()): Remove here.
(locale::_Impl::_Impl(size_t __refs, string __str)): Simplify
signature.
* src/locale.cc (locale::name()): Construct mangled name
accurately reflecting combined locale categories.
* src/locale.cc (locale::classic()): Don't initialize here.
* src/localename.cc (locale::_Impl::_Impl(size_t __num, size_t
__refs, bool __has_name, string __str): Do it here.
* include/bits/localefwd.h: _S_categories_num to
_S_num_categories. _S_facets_num to _S_num_facets.
(locale::id::id()): Explicitly set _M_index to zero.
* src/locale.cc: Same.
* src/locale.cc: (locale::locale(const char*)): Construct named
locales uniquely.
* src/locale.cc: Remove numpunct_byname ctors.
* testsuite/22_locale/numpunct_byname.cc: New file.
* testsuite/22_locale/numpunct.cc: New file.
* include/bits/localefwd.h (class locale): Change data members to
protected, from private.
(_Impl::_M_get_c_locale): Add member function.
(locale::facet::_M_get_global_impl()): Add member function.
* include/bits/locale_facets.h (numpunct::_M_init): Change to take
a __c_locale pointer.
(numpunct::numpunct( __c_locale*, size_t)): Add additonal ctor for
named locales.
* testsuite/22_locale/members.cc: New file, test name and combine.
* include/bits/locale_facets.h (class numpunct): Remove class
_Punct and _Numpunct. Rewrite class numpunct to be correct for
named locales.
* include/bits/localefwd.h (locale::_Imp::_M_c_locale): Add.
* src/localename.cc (_Impl::~_Impl()): Call __frelocale.
(_Imp::_Impl(size_t, size_t, bool, string)) Initialize _M_c_locale.
* src/locale-inst.cc: Remove _Numpunct, _Punct instantiations.
* testsuite/22_locale/numpunct_char_members.cc: New file.
pa.md (return): Revise comment for trivial return.
* pa.md (return): Revise comment for trivial return.
(return_internal): Non-trivial return pattern for non-PIC code.
(return_internal_pic): Non-trivial return pattern for PIC code.
It uses the PIC register to ensure it is restored after
function calls.
(epilogue): Generate appropriate return for PIC and non-PIC code.
Co-Authored-By: Jeff Law <law@redhat.com>
From-SVN: r39345
Joseph Myers [Mon, 29 Jan 2001 18:57:24 +0000 (18:57 +0000)]
tree.c, tree.h (build_parse_node): Remove; was identical to build_nt.
* tree.c, tree.h (build_parse_node): Remove; was identical to
build_nt.
* c-lang.c (start_cdtor), objc/objc-act.c
(build_module_descriptor): Use build_nt instead of
build_parse_node.
Jakub Jelinek [Mon, 29 Jan 2001 18:31:35 +0000 (19:31 +0100)]
i386.md (addqi_1_lea): Fix mode (QI instead of HI).
* config/i386/i386.md (addqi_1_lea): Fix mode (QI instead of HI).
(testqi_1, andqi_2): If widening to SImode, make sure CONST_INT does
not have any upper bits set.
* gcc.c-torture/execute/20010129-1.c: New test.
* gcc.c-torture/execute/20010129-1.x: Add -mcpu=i686 on ia32.
Neil Booth [Sun, 28 Jan 2001 11:22:23 +0000 (11:22 +0000)]
cpphash.c (_cpp_cleanup_hashtable, [...]): Don't set fe_value.
* cpphash.c (_cpp_cleanup_hashtable, _cpp_lookup_with_hash)
: Don't set fe_value.
* cpplib.h (AVOID_LPASTE): New flag.
(struct cpp_hashnode): Remove fe_value.
* cpplex.c (cpp_avoid_paste): Don't paste '.' with a number.
* cppmacro.c (builtin_macro): Don't set flags here.
(replace_args): Set AVOID_LPASTE flag on first token of an
argument, and the token following it.
(cpp_get_token): Set AVOID_LPASTE flag on first token of a
macro expansion, and on the token following it. Do it for
builtins too.
* cppmain.c (scan_buffer): Avoid pasting only flagged tokens.
* config.gcc (i[34567]86-sequent-{ptx4*,sysv4*}): Use usegas.h
if appropriate.
* config/ptx4.h: Several fixes to build on DYNIX/ptx v4.[456], and
to remove macro definitions that are duplicated from elfos.h.
* c-typeck.c (struct constructor_stack): Add range_stack member.
(really_start_incremental_init): Clear it.
(push_init_level): Save constructor_range_stack and clear it if
pushing explicit braces.
(pop_init_level): abort if constructor_range_stack is non-zero at
explicit closing brace. Restore saved constructor_range_stack if
not implicit.
* gcc.dg/gnu99-init-1.c: Add 3 more designated range initializer
tests.
Bryce McKinlay [Sat, 27 Jan 2001 06:04:29 +0000 (06:04 +0000)]
ObjectInputStream.java (read): AND byte with 0xff to make result unsigned.
* java/io/ObjectInputStream.java (read): AND byte with 0xff to make
result unsigned.
(read (byte[], int, int)): Only call readNextBlock() if the block
buffer would actually be overrun. Increment blockDataPosition.
(callReadMethod): Propagate exceptions from invocation target.
* java/io/ObjectOutputStream.java (callWriteMethod): Propagate
exceptions from invocation target.
* stmt.c (cost_table): Remove.
(COST_TABLE, cost_table_initialized): New.
(estimate_case_costs): Use the later instead of the former.
(balance_case_nodes): Likewise.
Tom Tromey [Fri, 26 Jan 2001 23:00:19 +0000 (23:00 +0000)]
jni.cc (_Jv_JNI_GetAnyMethodID): Rewrite signature from external to internal representation.
* jni.cc (_Jv_JNI_GetAnyMethodID): Rewrite signature from external
to internal representation.
(_Jv_JNI_GetAnyFieldID): Likewise. Also, only use
_Jv_FindClassFromSignature.
Michael Hayes [Fri, 26 Jan 2001 22:06:45 +0000 (22:06 +0000)]
loop.c (loop_giv_reduce_benefit): Copy mode size into int variable.
* loop.c (loop_giv_reduce_benefit): Copy mode size into
int variable.
(check_ext_dependant_givs): Initialise u_start_val and
u_end_val.
(load_mems): Make last_max_reg unsigned.
(try_swap_copy_prop): Use INSN_P and initialise set.
Phil Edwards [Thu, 25 Jan 2001 15:35:10 +0000 (15:35 +0000)]
std_iterator.h: Do not include stl_relops.h.
2001-01-25 Phil Edwards <pme@sources.redhat.com>
* include/bits/std_iterator.h: Do not include stl_relops.h.
* include/bits/std_numeric.h: Ditto.
* include/bits/stl_algobase.h: Ditto.
* include/bits/stl_relops.h: Add comment warning about problems.
Gabriel Dos Reis [Thu, 25 Jan 2001 04:09:22 +0000 (04:09 +0000)]
*.cc: Remove explicit reference to 'testsuite/' in testcases.
* testsuite/27_io/*.cc: Remove explicit reference to 'testsuite/'
in testcases. Prepare for the DejaGnu based framework.
* mkcheck.in: Adjust call to tests_flags. Don't mmkdir testsuite
directory -- it is now mkcheck working directory.
* tests_flags.in: Remove reference to $(top_srcdir). Use
${SRC_DIR} instead.
* Makefile.am (check, check-install): Change mkcheck invocation
logic.
* Makefile.in: Regenerate.
J"orn Rennecke [Thu, 25 Jan 2001 02:03:14 +0000 (02:03 +0000)]
c-decl.c (duplicate_decls): If different_binding_level is nonzero...
* c-decl.c (duplicate_decls): If different_binding_level is nonzero,
olddecl has argument types and newdecl has none, use the argument
types from olddecl.
Ulrich Drepper [Thu, 25 Jan 2001 00:18:16 +0000 (00:18 +0000)]
dwarf2out.c (prefix_of): New function.
* dwarf2out.c (prefix_of): New function. Determine longest common
prefix of the two arguments. The units are whole path components.
(output_file_names): When adding a new directory find the one entry
with the longest common prefix already in the list. Artificially
generate entry if there is none for this prefix.
Fix test to check whether the zeroth directory entry is used.
: ----------------------------------------------------------------------
J"orn Rennecke [Thu, 25 Jan 2001 00:02:49 +0000 (00:02 +0000)]
reload1.c (reload_reg_free_for_value_p): New parameter start_regno.
* reload1.c (reload_reg_free_for_value_p): New parameter start_regno.
Changed all callers. Take it into account when deciding if a
previously loaded value matches.
DJ Delorie [Wed, 24 Jan 2001 21:10:06 +0000 (16:10 -0500)]
combine.c (combine_simplify_rtx): If the modes are all VOIDmode, check the original operand's mode also.
* combine.c (combine_simplify_rtx): If the modes are all VOIDmode,
check the original operand's mode also.
* simplify-rtx.c (simplify_ternary_operation): Ditto.
Joseph Myers [Wed, 24 Jan 2001 20:41:49 +0000 (20:41 +0000)]
c-parse.in (cast_expr): Move compound literals from here ...
* c-parse.in (cast_expr): Move compound literals from here ...
(primary): ... to here. Use standard terminology "compound
literal" instead of "constructor expression".
testsuite:
* gcc.c-torture/compile/20010124-1.c: New test.