2004-10-11 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/16614 continued.
* include/ext/mt_allocator.h
(__per_type_pool_policy::_S_get_pool): Use saner defaults based on
specific type characteristics.
(__pool_base): Add constructor that takes a _Tune argument.
(__pool): Same.
* testsuite/ext/mt_allocator/tune-2.cc: Adjust default.
* testsuite/ext/mt_allocator/tune-4.cc: Same.
* testsuite/ext/mt_allocator/tune-3.cc: Same.
From-SVN: r88902
2004-10-10 Paolo Carlini <pcarlini@suse.de>
* config/locale/gnu/monetary_members.cc (_S_construct_pattern):
Give __ret a default value, thus avoiding spurious warnings.
* testsuite/performance/27_io/filebuf_sgetn_unbuf.cc: Open either
words or linux.words, otherwise exit.
* testsuite/performance/27_io/ifstream_getline.cc: Slighlty tweak.
From-SVN: r88848
2004-10-09 Paolo Carlini <pcarlini@suse.de>
* include/std/std_memory.h (__get_temporary_buffer): Don't use
INT_MAX, prefer numeric_limits<ptrdiff_t>::max(), ok on 64-bit
platforms too.
* testsuite/20_util/memory/auto_ptr/assign_neg.cc: Adjust dg-error
line numbers.
From-SVN: r88814
2004-10-06 Paolo Carlini <pcarlini@suse.de>
* include/std/std_sstream.h (_M_sync): When the caller is
setbuf, don't trust _M_string.capacity() to be the size of
the buffer area, use _M_string.size() in this case.
* testsuite/27_io/basic_stringbuf/setbuf/char/4.cc: New.
* testsuite/27_io/basic_stringbuf/setbuf/wchar_t/4.cc: Likewise.
* include/bits/sstream.tcc (overflow): Avoid calling string::assign
unnecessarily when the current _M_string is empty.
2004-10-06 Paolo Carlini <pcarlini@suse.de>
* include/bits/stl_algo.h (__reverse(bidirectional_iterator_tag)):
Avoid iterator postincrement.
(__rotate): Likewise.
* include/bits/stl_algo.h: Minor formatting tweaks.
2004-10-06 Christopher Jefferson <caj@cs.york.ac.uk>
* include/bits/stl_algo.h (__reverse(random_access_iterator_tag)):
Avoid iterator postincrement; fix swapping middle element with
itself on odd-length inputs.
From-SVN: r88593
2004-09-29 Paolo Carlini <pcarlini@suse.de>
* include/std/std_sstream.h (basic_stringbuf(ios_base::openmode)):
Don't use _M_stringbuf_init, keep the pointers null, per 27.7.1.1.
(str()): Slightly tweak, protect from pptr() == 0.
(_M_update_egptr()): Likewise.
* include/bits/sstream.tcc (ssekoff, seekpos): In order to check
for an empty buffer use __beg instead of _M_string.capacity().
* testsuite/27_io/basic_stringbuf/cons/char/1.cc: New.
* testsuite/27_io/basic_stringbuf/cons/wchar_t/1.cc: Likewise.
* testsuite/27_io/basic_filebuf/cons/char/1.cc: New.
* testsuite/27_io/basic_filebuf/cons/wchar_t/1.cc: Likewise.
* testsuite/27_io/basic_streambuf/cons/char/1.cc: Update.
* testsuite/27_io/basic_streambuf/cons/wchar_t/1.cc: Likewise.
2004-09-29 Paolo Carlini <pcarlini@suse.de>
Benjamin Kosnik <bkoz@redhat.com>
* testsuite/testsuite_io.h (class constraint_buf): New, extended
and templatized version of constraint_filebuf; add typedefs for
streambuf/stringbuf/filebuf and wchar_t counterparts.
Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com>
From-SVN: r88307
gcc/cp:
* decl.c (grokfndecl): If ::main is found not to return int,
correct it after issuing a diagnostic.
(grokdeclarator): If the incoming type was error_mark_node, do
not complain about declaring something with no type.
(start_function): Change check for ::main not returning int to
an assertion, as grokfndecl now catches this when the user did it.
* init.c (perform_member_init, sort_mem_initializers)
(emit_mem_initializers): Make most diagnostics be issued on
the line of current_function_decl, not whatever the current
input line is.
* parser.c (cp_lexer_peek_token_emit_debug_info): Surround
definition and declaration with #ifdef ENABLE_CHECKING.
Avoid unnecessary use of fprintf.
(cp_lexer_print_token, cp_lexer_debug_stream): Adjust stub
definitions to avoid warnings.
(cp_lexer_new_main): Add assertion that first token is not a
padding token.
(cp_lexer_new_from_token_array): Fold into ...
(cp_lexer_new_from_tokens): ... here. Add assertion that
first token is not a padding token.
(cp_lexer_set_source_position_from_token): Move nearer to callers.
Remove unused lexer argument.
(cp_lexer_peek_token): Just print debugging report (if enabled)
and return lexer->next_token.
(cp_lexer_skip_purged_tokens): Delete.
(cp_lexer_next_token_is, cp_lexer_next_token_is_not): Make
inline, simplify bodies.
(cp_lexer_peek_nth_token): Add debugging report a la
cp_lexer_peek_token.
(cp_lexer_consume_token): Correct commentary. Advance over
purged tokens here. Set current source position here, from
token to be returned. Avoid unnecessary use of fprintf.
(cp_lexer_purge_token): Advance next_token pointer over this and
subsequent purged tokens.
(cp_parser_error): Adjust source position to that of the
peeked token.
(cp_parser_push_lexer_for_tokens, cp_parser_pop_lexer): New functions.
(cp_parser_string_literal): Remove some excessive cleverness.
(cp_parser_enum_specifier): Call start_enum before consuming
the opening brace.
(cp_parser_member_declaration): Make the "extra semicolon"
diagnostic consistently-worded with the other place this is
diagnosed. Explicitly set the diagnostic location to the
location of the offending semicolon.
(cp_parser_enclosed_template_argument_list): Use %</%> quoting
in diagnostics. Do not use cp_parser_require. Set location
of diagnostics about improper use of '>>' to location of
offending token.
(cp_parser_late_parsing_for_member):
Use cp_parser_push_lexer_for_tokens and cp_parser_pop_lexer.
(cp_parser_late_parsing_default_args): Likewise. Manually
move some logic outside the loop.
gcc/testsuite:
* g++.dg/ext/complit1.C
* g++.dg/other/error2.C
* g++.dg/other/nontype-1.C
* g++.dg/parse/crash11.C
* g++.dg/parse/crash12.C
* g++.dg/parse/error15.C
* g++.dg/parse/error4.C
* g++.dg/parse/tmpl-outside1.C
* g++.dg/parse/too-many-tmpl-args1.C
* g++.dg/template/dependent-expr3.C
* g++.dg/template/error10.C
* g++.dg/template/instantiate1.C
* g++.dg/template/vtable2.C
* g++.dg/warn/Wshadow-1.C
* g++.dg/warn/weak1.C
* g++.old-deja/g++.brendan/crash16.C
* g++.old-deja/g++.brendan/crash18.C
* g++.old-deja/g++.brendan/crash48.C
* g++.old-deja/g++.brendan/crash49.C
* g++.old-deja/g++.brendan/crash55.C
* g++.old-deja/g++.brendan/crash56.C
* g++.old-deja/g++.brendan/crash8.C
* g++.old-deja/g++.brendan/enum11.C
* g++.old-deja/g++.brendan/enum8.C
* g++.old-deja/g++.brendan/enum9.C
* g++.old-deja/g++.brendan/friend3.C
* g++.old-deja/g++.brendan/misc14.C
* g++.old-deja/g++.bugs/900402_02.C
* g++.old-deja/g++.bugs/900404_03.C
* g++.old-deja/g++.bugs/900404_04.C
* g++.old-deja/g++.bugs/900428_03.C
* g++.old-deja/g++.jason/crash4.C
* g++.old-deja/g++.jason/overload21.C
* g++.old-deja/g++.jason/redecl1.C
* g++.old-deja/g++.jason/report.C
* g++.old-deja/g++.jason/rfg10.C
* g++.old-deja/g++.jason/template30.C
* g++.old-deja/g++.law/arm12.C
* g++.old-deja/g++.law/ctors5.C
* g++.old-deja/g++.law/cvt20.C
* g++.old-deja/g++.law/init10.C
* g++.old-deja/g++.law/init8.C
* g++.old-deja/g++.law/visibility17.C
* g++.old-deja/g++.law/visibility7.C
* g++.old-deja/g++.mike/net8.C
* g++.old-deja/g++.mike/p646.C
* g++.old-deja/g++.mike/p700.C
* g++.old-deja/g++.mike/p701.C
* g++.old-deja/g++.mike/p811.C
* g++.old-deja/g++.ns/template13.C
* g++.old-deja/g++.other/array3.C
* g++.old-deja/g++.other/crash25.C
* g++.old-deja/g++.other/dtor3.C
* g++.old-deja/g++.other/dtor4.C
* g++.old-deja/g++.other/main1.C
* g++.old-deja/g++.other/warn7.C
* g++.old-deja/g++.pt/crash11.C
* g++.old-deja/g++.pt/crash36.C
* g++.old-deja/g++.pt/spec22.C
* g++.old-deja/g++.pt/spec9.C
* g++.old-deja/g++.pt/ttp52.C
* g++.old-deja/g++.robertl/eb103.C
* g++.old-deja/g++.robertl/eb121.C
* g++.old-deja/g++.robertl/eb22.C
* g++.old-deja/g++.robertl/eb8.C:
Update locations and/or regexps of dg-error markers.
Remove markers for some bogus messages that are no longer issued.
libstdc++-v3:
* testsuite/20_util/memory/auto_ptr/assign_neg.cc
* testsuite/23_containers/map/operators/1_neg.cc
* testsuite/23_containers/set/operators/1_neg.cc:
Update locations and/or regexps of dg-error markers.
From-SVN: r87985
2004-09-13 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/11722
* include/std/std_fstream.h (xsgetn): Declare only.
* include/bits/fstream.tcc (xsgetn): Define, optimize for the
always_noconv() case: when __n > __buflen, copy the available
buffer and issue a direct read.
* testsuite/performance/27_io/filebuf_sgetn_unbuf.cc: New.
* include/bits/fstream.tcc (xsputn): Minor tweak, reorder a
conditional.
From-SVN: r87453
2004-08-29 Paolo Carlini <pcarlini@suse.de>
* include/bits/locale_facets.tcc (time_get<>::_M_extract_via_format,
case 'S'): Allow for at least one leap-second (as per C99, 7.23.1
and 7.23.3.5), two if !_GLIBCXX_USE_C99.
* testsuite/22_locale/time_get/get_time/char/4.cc: New.
* testsuite/22_locale/time_get/get_time/wchar_t/4.cc: Likewise.
From-SVN: r86712
2004-08-22 Paolo Carlini <pcarlini@suse.de>
* include/bits/locale_facets.tcc (num_put<>::do_put(bool)): Cast
to a signed type, long according to the resolution of DR 359.
* testsuite/22_locale/num_put/put/char/9.cc: New.
* testsuite/22_locale/num_put/put/wchar_t/9.cc: New.
* include/bits/locale_facets.tcc (num_put<>::do_put(const void*)):
Simplify a bit: no need to clear showpos.
From-SVN: r86382
* Makefile.am (hosted_source): Add libmath and testsuite.
(SUBDIRS): Remove them.
* acinclude.m4: (GLIBCXX_ENABLED_HOSTED): Default to freestanding
on arm*-*-symbianelf*.
* crossconfig.m4: Add arm*-*-symbianelf* support.
* include/c_std/std/std_cstdlib.h (stdlib.h): Do not include it
when freestanding. Do not bring names into std:: namespace with
"using" when freestanding. Declare required functions and macros
when freestanding.
* libsupc++/Makefile.am (c_sources): Do not include cp-demangle.c
when freestanding.
* libsupc++/del_op.cc: Declare "free" only when freestanding.
* libsupc++/eh_alloc.cc (cstring): Include it only when hosted.
(malloc): Declare when freestanding.
(free): Likewise.
(memset): Likewise.
(__cxa_allocate_exception): Call malloc, not std::malloc. Likewise
for memset.
(__cxa_free_exception): Likewise for free.
* libsupc++/new_op.cc: Declare "malloc" when freestanding.
* libsupc++/pure.cc (writestr): Define to nothing when
freestanding.
* libsupc++/vterminate.cc: Do not define anything when
freestanding.
* Makefile.in: Regenerated.
* aclocal.m4: Likewise.
* configure: Likewise.
* include/Makefile.in: Likewise.
* libmath/Makefile.in: Likewise.
* libsupc++/Makefile.in: Likewise.
* po/Makefile.in: Likewise.
* src/Makefile.in: Likewise.
* testsuite/Makefile.in: Likewise.
From-SVN: r85452