Phil Edwards
d32e25dffa
*: Move header files up a level.
...
2002-06-24 Phil Edwards <pme@gcc.gnu.org>
* config/cpu/*/bits/*: Move header files up a level. Remove bits.
* config/os/*/bits/*: Likewise.
* configure.in: Update.
* configure: Regenerate.
* configure.target: Update.
* docs/html/17_intro/porting.texi: Update.
From-SVN: r54943
2002-06-24 05:50:58 +00:00
Jason Merrill
5066927d9e
re PR libstdc++/4150 (catastrophic performance decrease in C++ code)
...
PR libstdc++/4150
* include/std/std_streambuf.h (basic_streambuf::_M_set_indeterminate):
Move to filebuf.
(basic_streambuf::_M_set_determinate): Likewise.
(basic_streambuf::_M_is_indeterminate): Likewise.
* include/bits/std_fstream.h (basic_filebuf::_M_filepos): New
non-static data member.
(basic_filebuf::_M_underflow_common): New non-static member function.
(basic_filebuf::_M_underflow, _M_uflow): Call it.
(basic_filebuf::sync): Avoid useless seeking.
(basic_filebuf::_M_set_indeterminate): Move here from streambuf.
Set _M_filepos.
(basic_filebuf::_M_set_determinate): Likewise.
(basic_filebuf::_M_is_indeterminate): Likewise.
* include/bits/fstream.tcc (basic_filebuf::_M_really_overflow): Seek
back to _M_out_beg if necessary.
(basic_filebuf::seekoff): Likewise.
(basic_filebuf::_M_underflow_common): Generalization of old
underflow(). Don't seek back to _M_in_beg.
* src/ios.cc: Lose _GLIBCPP_AVOID_FSEEK stuff.
* config/os/solaris/solaris2.?/bits/os_defines.h: Likewise.
* config/os/bsd/freebsd/bits/os_defines.h: Likewise.
* config/os/mingw32/bits/os_defines.h: Likewise.
* testsuite/27_io/filebuf_virtuals.cc (test05): Don't overspecify
ungetc test.
From-SVN: r52634
2002-04-22 16:28:05 -04:00
Benjamin Kosnik
a0e073b266
ctype_noninline.h: Fix formatting.
...
2002-01-22 Benjamin Kosnik <bkoz@redhat.com>
* config/os/aix/bits/ctype_noninline.h: Fix formatting.
* config/os/bsd/netbsd/bits/ctype_noninline.h: Fix typo.
* config/os/bsd/freebsd/bits/ctype_noninline.h: Fix formatting.
From-SVN: r49078
2002-01-22 16:09:25 +00:00
Benjamin Kosnik
93dbe8d76d
[multiple changes]
...
2002-01-20 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/locale_facets.h (ctype<char>::classic_table):
Remove definition.
(ctype<char>::_S_ctable): Remove.
* config/os/gnu-linux/bits/ctype_noninline.h
(ctype<char>::_S_table): Remove definition.
(ctype<char>::classic_table): Define.
(ctype<char>::ctype): Replace _S_ctable with classic_table().
* config/os/aix/bits/ctype_noninline.h: Same.
* config/os/bsd/freebsd/bits/ctype_noninline.h: Same.
* config/os/bsd/netbsd/bits/ctype_noninline.h: Same.
* config/os/djgpp/bits/ctype_noninline.h: Same.
* config/os/generic/bits/ctype_noninline.h: Same.
* config/os/gnu-linux/bits/ctype_noninline.h: Same.
* config/os/hpux/bits/ctype_noninline.h: Same.
* config/os/irix/irix5.2/bits/ctype_noninline.h: Same.
* config/os/irix/irix6.5/bits/ctype_noninline.h: Same.
* config/os/mingw32/bits/ctype_noninline.h: Same.
* config/os/newlib/bits/ctype_noninline.h: Same.
* config/os/solaris/solaris2.5/bits/ctype_noninline.h: Same.
* config/os/solaris/solaris2.6/bits/ctype_noninline.h: Same.
* config/os/solaris/solaris2.7/bits/ctype_noninline.h: Same.
2002-01-20 Danny Smith <dannysmith@users.sourceforge.net>
* config/os/mingw32/bits/ctype_noninline.h: Declare _ctype instead
of _pctype. Use to define _S_ctable. Add definition for alternate
ctor. Initialise _M_ctable to _S_ctable in ctors.
(do_toupper, do_tolower): Use inline code appropriate for C-locale
rather than ::toupper, ::tolower.
From-SVN: r49032
2002-01-21 04:08:54 +00:00
Benjamin Kosnik
8f7a401515
stl_iterator.h (reverse_iterator::_M_current): Deuglify, should be current.
...
2002-01-16 Benjamin Kosnik <bkoz@redhat.com>
Peter Schmid <schmid@snake.iap.physik.tu-darmstadt.de>
* include/bits/stl_iterator.h (reverse_iterator::_M_current):
Deuglify, should be current.
(back_insert_iterator::_M_container): Deuglify, should be container.
(front_insert_iterator::_M_container): Same.
(insert_iterator::_M_container): Same.
* testsuite/24_iterators/reverse_iterator.cc: Add check.
* testsuite/24_iterators/back_insert_iterator.cc: Add check.
* testsuite/24_iterators/front_insert_iterator.cc: Same.
* testsuite/24_iterators/insert_iterator.cc: Same.
2002-01-16 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/locale_facets.h (ctype<char>::classic_table): Make
static.
(ctype<char>::_M_ctable): Make static, change name to _S_ctable.
* config/os/gnu-linux/bits/ctype_noninline.h: Define _S_ctable.
* config/os/solaris/solaris2.7/bits/ctype_noninline.h: Same.
* config/os/solaris/solaris2.6/bits/ctype_noninline.h: Same.
* config/os/solaris/solaris2.5/bits/ctype_noninline.h: Same.
* config/os/newlib/bits/ctype_noninline.h: Same.
* config/os/irix/irix6.5/bits/ctype_noninline.h: Same.
* config/os/irix/irix5.2/bits/ctype_noninline.h: Same.
* config/os/hpux/bits/ctype_noninline.h: Same.
* config/os/djgpp/bits/ctype_noninline.h: Same.
* config/os/bsd/netbsd/bits/ctype_noninline.h: Same.
* config/os/bsd/freebsd/bits/ctype_noninline.h: Same.
* config/os/aix/bits/ctype_noninline.h: Same.
Testcase by Dietmar K�hl via Peter Schmid
* testsuite/22_locale/ctype_members_char.cc (char>): Add test for
classic_table().
Co-Authored-By: Peter Schmid <schmid@snake.iap.physik.tu-darmstadt.de>
From-SVN: r48938
2002-01-17 03:59:42 +00:00
Benjamin Kosnik
9e5c7dba50
Named locale support for ctype<char>.
...
2001-12-12 Benjamin Kosnik <bkoz@redhat.com>
Named locale support for ctype<char>.
* config/locale/c_locale_gnu.h (_GLIBCPP_C_LOCALE_GNU): New.
* config/os/gnu-linux/bits/ctype_noninline.h (ctype<char>): Add
definitions for alternate constructor.
* config/os/solaris/solaris2.7/bits/ctype_noninline.h (ctype): Same.
* config/os/solaris/solaris2.6/bits/ctype_noninline.h (ctype): Same.
* config/os/solaris/solaris2.5/bits/ctype_noninline.h (ctype): Same.
* config/os/newlib/bits/ctype_noninline.h (ctype): Same.
* config/os/irix/irix6.5/bits/ctype_noninline.h (ctype): Same.
* config/os/irix/irix5.2/bits/ctype_noninline.h (ctype): Same.
* config/os/hpux/bits/ctype_noninline.h (ctype): Same.
* config/os/generic/bits/ctype_noninline.h (ctype): Same.
* config/os/djgpp/bits/ctype_noninline.h (ctype): Same.
* config/os/bsd/netbsd/bits/ctype_noninline.h (ctype): Same.
* config/os/bsd/freebsd/bits/ctype_noninline.h (ctype): Same.
* config/os/aix/bits/ctype_noninline.h (ctype): Same.
* include/bits/locale_facets.h (ctype<_CharT>): Remove dummy
definitions for all virtual functions. These are now explicitly
undefined for non-required factets, ie any non-char, non-wchar_t
instantiations.
* src/localename.cc (locale::_Impl::_Impl(string, size_t): Named
locales use alternate constructor for ctype facet.
* include/bits/locale_facets.h (ctype<char>::ctype(__c_locale, const
mask*, bool, size_t): Add.
(ctype<wchar_t>::ctype(__c_locale, size_t): Add.
* src/locale.cc (ctype<wchar_t>::ctype(__c_locale, size_t)): Add
definition.
* testsuite/22_locale/ctype_members_char.cc (test02): Add, mark
XFAIL for non-gnu locale models.
From-SVN: r47953
2001-12-12 23:16:35 +00:00
Benjamin Kosnik
f295ecef02
limits.h: Move to...
...
2001-10-22 Benjamin Kosnik <bkoz@redhat.com>
* config/cpu/i386/bits/limits.h: Move to...
* config/cpu/i386/bits/cpu_limits.h: ...here.
* config/cpu/cris/bits/cpu_limits.h: Same.
* config/cpu/powerpc/bits/cpu_limits.h: Same.
* config/cpu/x86-64/bits/cpu_limits.h: Same.
* config/cpu/alpha/bits/cpu_limits.h: New.
* config/cpu/m68k/bits/cpu_limits.h: New.
* config/cpu/s390/bits/cpu_limits.h: New.
* config/os/aix/bits/os_defines.h: Tweaks.
* config/os/bsd/freebsd/bits/os_defines.h: Same.
* config/os/bsd/netbsd/bits/os_defines.h: Same.
* config/os/djgpp/bits/os_defines.h: Same.
* config/os/generic/bits/os_defines.h: Same.
* config/os/gnu-linux/bits/os_defines.h: Same.
* config/os/hpux/bits/os_defines.h: Same.
* config/os/irix/irix5.2/bits/os_defines.h: Same.
* config/os/irix/irix6.5/bits/os_defines.h: Same.
* config/os/newlib/bits/os_defines.h: Same.
* config/os/solaris/solaris2.5/bits/os_defines.h: Same.
* config/os/solaris/solaris2.6/bits/os_defines.h: Same.
* config/os/solaris/solaris2.7/bits/os_defines.h: Same.
* include/bits/c++config: Remove include.
* include/bits/limits_generic.h: Remove.
* include/bits/std_limits.h: Include cpu_limits.h.
* include/Makefile.am: Fixup.
* src/limits.cc: Tweak.
* src/limits_generic.cc: Remove.
* src/gen-num-limits.cc: Remove.
* mknumeric_limits: Remove.
From-SVN: r46445
2001-10-23 21:40:31 +00:00
Loren J. Rittle
405bfc410e
limits.h (__glibcpp_long_double_bits): Only define if not already provided by per-OS file.
...
* config/cpu/i386/bits/limits.h (__glibcpp_long_double_bits): Only
define if not already provided by per-OS file.
* config/os/bsd/freebsd/bits/os_defines.h (__glibcpp_long_double_bits):
Define.
From-SVN: r45165
2001-08-24 21:57:15 +00:00
Loren J. Rittle
ddf1e65262
porting.texi: Add documentation about libstdc++-v3-specific macros that are currently...
...
libstdc++/2071
* porting.texi: Add documentation about libstdc++-v3-specific
macros that are currently included in os_defines.h files.
* config/basic_file_stdio.h (sys_getc): New method.
(sys_ungetc): New method.
* include/bits/basic_file.h: (sys_getc): New method signature.
(sys_ungetc): New method signature.
* include/bits/fstream.tcc (underflow): Add conditional code
paths which avoid using short seeks on streams (especially
useful when the stream might be interactive or a pipe). At
the moment, this alternate path only avoids seeking when the
``buffer size'' of underflow() is 1 since the C standard only
guarantees buffer space for one ungetc (this technique could
be extended since *-*-solaris* supports buffering for 4 calls
to ungetc and *-*-*bsd* supports buffering limited only by
memory resources). Also, _GLIBCPP_AVOID_FSEEK must be defined
in a port's os_defines.h file for this alternate path to even
be considered. As a bonus, the idiom of using getc/ungetc
requires no system calls whereas fseek maps to one or two
system call(s) on many platforms.
* config/os/bsd/freebsd/bits/os_defines.h (_GLIBCPP_AVOID_FSEEK):
Define it.
* config/os/solaris/solaris2.5/bits/os_defines.h
(_GLIBCPP_AVOID_FSEEK): Likewise.
* config/os/solaris/solaris2.6/bits/os_defines.h
(_GLIBCPP_AVOID_FSEEK): Likewise.
* config/os/solaris/solaris2.7/bits/os_defines.h
(_GLIBCPP_AVOID_FSEEK): Likewise.
From-SVN: r43278
2001-06-12 23:09:09 +00:00
Loren J. Rittle
046585534e
ctype_inline.h (is): (Make right code path:) Remove magic constants and restructure to handle...
...
* config/os/bsd/freebsd/bits/ctype_inline.h (is): (Make right
code path:) Remove magic constants and restructure to handle
ctype.h bit mask layout changes more gracefully. (Make fast
code path:) Use __maskrune (), if available.
(is): Remove special case for digit and xdigit masks.
From-SVN: r38847
2001-01-10 02:08:16 +00:00
Benjamin Kosnik
62f4333a68
ctype_inline.h (is): Same.
...
2000-12-19 Benjamin Kosnik <bkoz@fillmore.redhat.com>
* config/os/solaris/solaris2.5/bits/ctype_inline.h (is): Same.
* config/os/solaris/solaris2.6/bits/ctype_inline.h (is): Same.
* config/os/solaris/solaris2.7/bits/ctype_inline.h (is): Same.
* config/os/newlib/bits/ctype_inline.h (is): Same.
* config/os/irix/bits/ctype_inline.h (is): Same.
* config/os/bsd/netbsd/bits/ctype_inline.h (is): Same.
* config/os/bsd/freebsd/bits/ctype_inline.h (is): Same.
* config/os/aix/bits/ctype_inline.h (is): Same.
* config/os/gnu-linux/bits/ctype_inline.h (is): Revert.
* config/os/generic/bits/ctype_inline.h (is): Non-table based
implementation.
* testsuite/22_locale/ctype_char_members.cc (test01): Use binary
operator correctly.
(test01): Check 'A' for alnum, upper, alpha.
From-SVN: r38385
2000-12-19 19:49:00 +00:00
Benjamin Kosnik
0c3a231d2f
locale_facets.h (ctype<char>): Remove throw specs not in base class signature.
...
2000-12-13 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/locale_facets.h (ctype<char>): Remove throw specs not in
base class signature.
* config/os/*/bits/ctype_inline.h (is): Same.
From-SVN: r38250
2000-12-14 09:19:56 +00:00
Benjamin Kosnik
d9ab8adb37
ctype_base.h (ctype_base): Consistency with linux.
...
2000-12-13 Benjamin Kosnik <bkoz@redhat.com>
* config/os/generic/bits/ctype_base.h (ctype_base): Consistency
with linux.
* config/os/generic/bits/ctype_inline.h (is): Same.
* config/os/solaris/solaris2.5/bits/ctype_inline.h (is): Same.
* config/os/solaris/solaris2.5/bits/ctype_base.h: Same.
* config/os/solaris/solaris2.6/bits/ctype_inline.h (is): Same.
* config/os/solaris/solaris2.6/bits/ctype_base.h: Same.
* config/os/solaris/solaris2.7/bits/ctype_inline.h (is): Same.
* config/os/solaris/solaris2.7/bits/ctype_base.h: Same.
* config/os/irix/bits/ctype_inline.h (is): Same.
* config/os/irix/bits/ctype_base.h (ctype_base): Same.
* config/os/aix/bits/ctype_inline.h (is): Same.
* config/os/aix/bits/ctype_base.h (ctype_base): Same.
* config/os/bsd/netbsd/bits/ctype_inline.h (is): Same.
* config/os/bsd/netbsd/bits/ctype_base.h (ctype_base): Same.
* config/os/bsd/freebsd/bits/ctype_base.h (ctype_base): Same.
* config/os/bsd/freebsd/bits/ctype_inline.h (is): Same.
* config/os/newlib/bits/ctype_inline.h (is): Same.
* config/os/newlib/bits/ctype_base.h (ctype_base): Same.
* testsuite/22_locale/ctype_char_members.cc (test01): Add tests, fix.
* testsuite/22_locale/ctype.cc (test01): Add tests for
ctype_base::mask bitmask features.
* src/locale.cc: Define const static data for ctype_base.
* config/os/gnu-linux/bits/ctype_base.h (ctype_base): Make
ctype_base::mask type an integer type, not an enum.
* config/os/gnu-linux/bits/ctype_inline.h (is): Implement correctly.
* include/bits/locale_facets.h: Tweaks.
* include/bits/ios_base.h: Formatting tweaks.
* docs/html/17_intro/C++STYLE: Add.
From-SVN: r38243
2000-12-14 07:20:37 +00:00
Benjamin Kosnik
4716be24b5
ctype_base.h (ctype_base): Change space mask.
...
2000-12-07 Benjamin Kosnik <bkoz@purist.soma.redhat.com>
* config/os/generic/bits/ctype_base.h (ctype_base): Change space mask.
* config/os/generic/bits/ctype_noninline.h (ctype): Remove default
arguments in definition.
* config/os/solaris/solaris2.7/bits/ctype_noninline.h (ctype): Same.
* config/os/solaris/solaris2.6/bits/ctype_noninline.h (ctype): Same.
* config/os/solaris/solaris2.5/bits/ctype_noninline.h (ctype): Same.
* config/os/newlib/bits/ctype_noninline.h (ctype): Same.
* config/os/irix/bits/ctype_noninline.h (ctype): Same.
* config/os/hpux/bits/ctype_noninline.h (ctype): Same.
* config/os/bsd/netbsd/bits/ctype_noninline.h (ctype): Same.
* config/os/bsd/freebsd/bits/ctype_noninline.h (ctype): Same.
* config/os/aix/bits/ctype_noninline.h (ctype): Same.
* include/bits/locale_facets.h: Tweak.
From-SVN: r38115
2000-12-07 20:49:10 +00:00
Benjamin Kosnik
167ed88f7a
locale_facets.h (ctype): Remove _Ctype_nois and _Ctype and replace with common __ctype_abstract_base.
...
2000-12-06 Benjamin Kosnik <bkoz@kredhat.com>
* include/bits/locale_facets.h (ctype): Remove _Ctype_nois and
_Ctype and replace with common __ctype_abstract_base.
(ctype<wchar_t>::_M_convert_to_wmask): Move to locale.cc.
* config/os/gnu-linux/bits/ctype_noninline.h (ctype<char>::ctype):
And here.
* config/os/solaris/solaris2.7/bits/ctype_noninline.h (ctype): Same.
* config/os/solaris/solaris2.6/bits/ctype_noninline.h (ctype): Same.
* config/os/solaris/solaris2.5/bits/ctype_noninline.h (ctype): Same.
* config/os/newlib/bits/ctype_noninline.h (ctype): Same.
* config/os/irix/bits/ctype_noninline.h (ctype): Same.
* config/os/hpux/bits/ctype_noninline.h (ctype): Same.
* config/os/generic/bits/ctype_noninline.h (ctype): Same.
* config/os/aix/bits/ctype_noninline.h (ctype): Same.
* config/os/bsd/netbsd/bits/ctype_noninline.h (ctype): Same.
* config/os/bsd/freebsd/bits/ctype_noninline.h (ctype): Same.
* src/locale-inst.cc: Clean instantiations.
* src/locale.cc (ctype<char>): Add definitions here.
(ctype<wchar_t>::_M_wmask): Move definitions here.
* config/os/generic/bits/ctype_inline.h (ctype<char>::is):
Implement in a generic way, with only "C" functionality and no
knowlege of the target os.
* config/os/generic/bits/os_defines.h: Change comments to C++ style.
* testsuite/22_locale/ctype_char_members.cc (test01): Add tests.
* include/bits/codecvt.h (ctype_byname): Remove specializations,
as not required.
* include/bits/localefwd.h (codecvt_byname): And here.
* src/codecvt.cc: Remove codecvt_byname specializations.
* include/c/bits/std_cstdio.h: Include c++config.h.
From-SVN: r38100
2000-12-07 06:44:49 +00:00
Benjamin Kosnik
f502ff4fc8
acinclude.m4: Change up to reflect new directory organization.
...
2000-12-05 Benjamin Kosnik <bkoz@fillmore.redhat.com>
* acinclude.m4: Change up to reflect new directory organization.
Add in bits for NetBSD.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* config/os/bsd: New directory.
* config/os/netbsd: Move to...
* config/os/bsd/netbsd: ...here.
* config/os/freebsd: Move to...
* config/os/bsd/freebsd: ...here.
From-SVN: r38055
2000-12-05 23:25:08 +00:00