* include/bits/stl_iterator.h (__normal_iterator<>): Qualify
dependent names with `typename'. Bring in various required
iterator_traits members. Can't imagine why that used to work.
From-SVN: r43568
* include/bits/indirect_array.h (indirect_array<>::operator=):
Make copy and assignment operator public. Implement. Format.
* include/bits/valarray_array.h (__valarray_copy): Add overloads
for copy between index arrays. Format.
From-SVN: r43483
2001-06-18 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/stl_raw_storage_iter.h: Format. Correct derivation.
* testsuite/20_util/raw_storage_iterator.cc: Same.
* include/bits/stl_alloc.h (_S_chunk_alloc): Change malloc to
operator new.
(__mem_interface): New typedef for switching between malloc and new.
* testsuite/20_util/allocator_members.cc: New file.
* testsuite/20_util/comparisons.cc: New file.
* testsuite/20_util/pairs.cc: New file.
From-SVN: r43451
* configure.in (auxdir): Replace by ...
(toprel): ... new variable.
(toplevel_srcdir): Construct from $toprel.
* acinclude.m4 (GLIBCPP_ENABLE_THREADS): Use $toprel
rather than .. to locate gcc source directory.
(GLIBCPP_CONFIGURE): Replace $auxdir with $srcdir/$toprel.
* aclocal.m4, configure: Rebuilt.
From-SVN: r43364
* src/globals.cc: Define globals _GLIBCPP_mutex_init (),
_GLIBCPP_mutex_address_init (), _GLIBCPP_once, _GLIBCPP_mutex
and _GLIBCPP_mutex_address.
* include/bits/stl_threads.h (_STL_mutex_lock): Use above to provide
once-only runtime initialization of _M_lock mutex when
__GTHREAD_MUTEX_INIT_FUNCTION is defined.
(__STL_MUTEX_INITIALIZER): Provide initializer for _STL_mutex_lock
for __GTHREAD_MUTEX_INIT_FUNCTION case.
From-SVN: r43360
* testsuite/26_numerics/slice_array_assignment.cc (main): New test.
* include/bits/slice_array.h (slice_array<>::operator=): Make
public and implement.
(slice_array<>::slice_array): Make copy-constructor public.
* include/bits/valarray_array.h (__valarray_copy): Add another
overload to copy between strided arrays.
From-SVN: r43352
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 Benjamin Kosnik <bkoz@redhat.com>
libstdc++/3142
* include/bits/std_sstream.h: Add allocator_type, as per DR 251.
libstdc++/3141
* include/bits/istream.tcc (getline, get): Fix as per DR 243.
libstdc++/3140
* include/bits/std_bitset.h (bitset::set): Fix as per DR 186.
libstdc++/3139
* include/bits/limits_generic.h: Fix as per DR 184.
From-SVN: r43276
2001-06-12 Benjamin Kosnik <bkoz@redhat.com>
libstdc++/3142
* include/bits/std_sstream.h: Add allocator_type, as per DR 251.
libstdc++/3141
* include/bits/istream.tcc (getline, get): Fix as per DR 243.
libstdc++/3140
* include/bits/std_bitset.h (bitset::set): Fix as per DR 186.
libstdc++/3139
* include/bits/limits_generic.h: Fix as per DR 184.
From-SVN: r43273
2001-06-11 Phil Edwards <pme@sources.redhat.com>
* README: Update to reflect reality.
* acinclude.m4: Update descriptions, fix typos. Comment changes only.
* configure.in: Make certain target_alias is set and subst'd for 2.50.
* aclocal.m4: Regenerate.
* configure: Regenerate (with 2.13).
From-SVN: r43203
2001-06-08 Benjamin Kosnik <bkoz@redhat.com>
libstdc++/2767
libstdc++/2989
libstdc++/2992
* include/std/*: Add copyright notice.
* include/c_std/bits/*: Use using statements instead of extern "C".
* include/c_std/bits/std_cmath.h: Don't overload double versions
of math functions with __buitin versions, use global version to
prevent ambiguities. Remove define hacks.
* include/c_std/bits/std_cwchar.h: Using declarations for "C"
functions that have changed signatures and std::
declarations. Remove define hacks.
* include/c_std/bits/std_cwchar.h: Same, plus remove ambiguous
__builtins in std::. Remove define hacks.
* testsuite/17_intro/headers_c.cc: Add tests.
* testsuite/17_intro/headers_c++.cc: Add test.
From-SVN: r43061
* libsupc++/eh_alloc.cc: Ensure that required macros are
defined before including gthr.h. Ensure that we get the
version of gthr.h for which we know how to provide a
configuration.
* libsupc++/eh_globals.cc: Likewise. And, bring the threading
code path into line with the current EH model. Use std, where
appropriate.
Co-Authored-By: John David Anglin <dave@hiauly1.hia.nrc.ca>
From-SVN: r42999
* config/threads-no.h: Remove file.
* config/threads-posix.h: Remove file.
* acconfig.h (_GLIBCPP_USE_THREADS): Remove.
(_GLIBCPP_SUPPORTS_WEAK): Add (required by namespace-clean gthr*.h).
(_GLIBCPP_HAVE_GTHR_DEFAULT): Likewise.
* config.h.in: Regenerate.
* acinclude.m4 (GLIBCPP_ENABLE_THREADS): Completely rework to
setup and use gthr*.h files. In particular, make gthr.h files
namespace-clean in the staging area (they don't have to be for
libgcc.a).
* aclocal.m4: Regenerate.
* configure: Regenerate.
* src/Makefile.am (build_headers): Remove bits/c++threads.h
and add bits/gthr.h bits/gthr-single.h bits/gthr-default.h.
* src/Makefile.in: Regenerate.
* include/bits/c++config: Cleanup threading configuration macros.
In particular, define __STL_GTHREADS macro which controls...
* include/bits/stl_threads.h: ...a brand new gthr.h-based
configuration here.
* config/c_io_stdio.h: Include staged gthr.h instead of local
thread configuration file. Always use __gthread_mutex_t
instead of __mutext_type (or int).
* include/bits/std_fstream.h: Likewise.
* docs/html/17_intro/howto.html: Remove placeholder comment in
case this configuration patch didn't make it. Add advice that
section only applies if configured with --enable-threads.
* docs/html/23_containers/howto.html: Reword to make clear
that _PTHREADS is no longer required for any port to be
correctly using STL with threads. Add advice that section
only applies if configured with --enable-threads.
Co-Authored-By: John David Anglin <dave@hiauly1.hia.nrc.ca>
From-SVN: r42998
2001-06-04 Kenny Simpson <theonetruekenny@yahoo.com>
Phil Edwards <pme@sources.redhat.com>
PR libstdc++/3035 and PR libstdc++/3036
* include/bits/stl_pair.h: Fix pair ctor and make_pair according
to LWG DR 181 and 265.
Co-Authored-By: Phil Edwards <pme@gcc.gnu.org>
From-SVN: r42865
* libsupc++/Makefile.am (install-glibcppinstallHEADERS,
uninstall-glibcppinstallHEADERS): Have explicit rules catering to
SUN make VPATH peculiarities.
* libsupc++/Makefile.in: Regenerate.
From-SVN: r42844
* src/Makefile.am (VPATH): Delimit with ":", not space.
* src/Makefile.in: Regenerate.
* configure.in (use of GLIBCPP_CHECK_GNU_MAKE): Don't fail if GNU
make isn't found.
* configure: Regenerate.
From-SVN: r42774
* include/bits/c++config (__USE_MALLOC): Do not define it.
Document why not and give pointers to more information.
* docs/html/23_containers/howto.html: Update documentation
to reflect recent understanding of problem.
* docs/html/17_intro/howto.html: Likewise.
From-SVN: r42732
2001-05-29 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
* include/c_std/bits/std_cstdlib.h:: Move C99 thingies to __gnu_cxx::.
* include/c_std/bits/std_cwchar.h (__gnu_cxx): Likewise.
2001-05-27 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
* include/c_std/bits/std_cmath.h: Move C99 functions in __gnu_cxx::.
* include/c_std/bits/std_cstdlib.h: Same.
* include/c_std/bits/std_cwchar.h: Same.
From-SVN: r42707
* include/c_std/bits/std_cmath.h: Tweak. #define away abs, cos,
fabs, sin, sqrt. They are now implemented in terms of __builtin_
variants.
From-SVN: r42595
2001-05-24 Benjamin Kosnik <bkoz@redhat.com>
libstdc++/2830
* testsuite/21_strings/inserters_extractors.cc (test09): New test.
* include/bits/ostream.tcc: Format to match istream.tcc.
(operator<<(basic_ostream __out, const basic_string __s)): Fix.
From-SVN: r42557
* include/c_std/bin/std_cstring.h: #define away all global
functions we will redeclare in namespace `std'.
* libsupc++/eh_alloc.cc (__cxa_allocate_exception): Use
std::memset, instead of memset.
* testsuite/19_diagnostics/stdexceptions.cc: Use `std::strcmp',
not plain `strcmp'.
* testsuite/21_strings/c_strings.cc: Use `std::strcpy' instead of
plain `strcpy'.
From-SVN: r42555
2001-05-21 Benjamin Kosnik <bkoz@redhat.com>
* mkcheck.in (static_fail): Remove S_FLAG decoration on output.
* include/bits/std_sstream.h (stringbuf::setbuf): Require both
arguments to be non-null.
* include/bits/fstream.tcc (filebuf::_M_allocate_buffers): Only
try allocations if allocated size is greater than zero.
(filebuf::_M_filebuf_init): Change to
(filebuf::_M_allocate_file): Which is what it does now.
(filebuf::_M_allocate_bufers): Change to
(filebuf::_M_allocate_internal_buffer): This, and create
(filebuf::_M_allocate_pback_buffer): New.
(filebuf::_M_destroy_internal_buffer): New.
(filebuf::_M_buf_allocated): New data member.
(filebuf::setbuf): Use new logic, allow use of external buffer.
* testsuite/27_io/stringbuf_virtuals.cc: New file.
* testsuite/27_io/filebuf_virtuals.cc: New file.
From-SVN: r42458
* ltconfig, ltmain.sh, libtool.m4, ltcf-c.sh, ltcf-cxx.sh,
ltcf-gcj.sh: Upgraded to libtool 1.4a 1.641.2.254. Rebuilt a number
of subdir/configure scripts to use the new libtool.m4.
From-SVN: r42351
2001-05-18 Angela Marie Thomas <angela@cygnus.com>
* testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3-init): Set flags
appropriately for remote testing and testing installed files without
a build dir.
From-SVN: r42272
* include/bits/std_valarray.h (valarray<>::operator[] const):
Return a const reference.
* testsuite/26_numerics/valarray_const_bracket.cc: New test.
From-SVN: r42245
2001-05-18 Angela Marie Thomas <angela@cygnus.com>
* testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3-dg-test): Set
output_file based on the name of the testcase.
2001-05-18 Angela Marie Thomas <angela@cygnus.com>
* testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3-init): Build
gluefile and use it if needs_status_wrapper is set.
From-SVN: r42240
2001-05-13 John David Anglin <dave@hiauly1.hia.nrc.ca>
* mkcheck.in (setup_size_command): Use Berkeley "-B" mode with GNU
size. Add hpux case for HP size.
From-SVN: r42036
* libsupc++/eh_personality.cc: Include unwind-pe.h. Remove
all pointer encoding logic.
(struct lsda_header_info): Add ttype_base.
(get_ttype_entry): Use it instead of a context.
(check_exception_spec): Likewise.
(PERSONALITY_FUNCTION): Initialize ttype_base. Store it in
the c++ exception header for __cxa_call_unexpected.
(__cxa_call_unexpected): Use it.
From-SVN: r41982