aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Kosnik <bkoz@redhat.com>2002-04-04 05:32:59 +0000
committerBenjamin Kosnik <bkoz@gcc.gnu.org>2002-04-04 05:32:59 +0000
commita9bb75a7e0b58e9b8687c83b718039f24294c3f2 (patch)
tree52c00996258987cfc426305e87acfb4a9e4d88f5
parent823fbbce5c867613d9a1417d77970ab0ea5f41b4 (diff)
downloadgcc-a9bb75a7e0b58e9b8687c83b718039f24294c3f2.zip
gcc-a9bb75a7e0b58e9b8687c83b718039f24294c3f2.tar.gz
gcc-a9bb75a7e0b58e9b8687c83b718039f24294c3f2.tar.bz2
As per DR 184, libstdc++/3139
2002-04-03 Benjamin Kosnik <bkoz@redhat.com> As per DR 184, libstdc++/3139 * include/std/std_limits.h (__glibcpp_bool_digits): Change to 1. (numeric_limits<bool>::is_iec559): False. (numeric_limits<bool>::is_modulo): False. * testsuite/27_io/ios_init.cc: Add instantiations. From-SVN: r51838
-rw-r--r--libstdc++-v3/ChangeLog9
-rw-r--r--libstdc++-v3/include/std/std_limits.h9
-rw-r--r--libstdc++-v3/testsuite/27_io/ios_init.cc8
3 files changed, 20 insertions, 6 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index bbb282d..08561c0 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,12 @@
+2002-04-03 Benjamin Kosnik <bkoz@redhat.com>
+
+ As per DR 184, libstdc++/3139
+ * include/std/std_limits.h (__glibcpp_bool_digits): Change to 1.
+ (numeric_limits<bool>::is_iec559): False.
+ (numeric_limits<bool>::is_modulo): False.
+
+ * testsuite/27_io/ios_init.cc: Add instantiations.
+
2002-04-02 Benjamin Kosnik <bkoz@redhat.com>
libstdc++/5268
diff --git a/libstdc++-v3/include/std/std_limits.h b/libstdc++-v3/include/std/std_limits.h
index d2b57e3..64d8a9b 100644
--- a/libstdc++-v3/include/std/std_limits.h
+++ b/libstdc++-v3/include/std/std_limits.h
@@ -233,11 +233,8 @@
// bool-specific hooks:
// __glibcpp_bool_digits __glibcpp_int_traps __glibcpp_long_traps
-// This is actually CHAR_BITS because the new ABI says a bool
-// is one (1) byte wide.
-
#ifndef __glibcpp_bool_digits
-#define __glibcpp_bool_digits __glibcpp_char_bits
+#define __glibcpp_bool_digits 1
#endif
// char.
@@ -996,9 +993,9 @@ namespace std
static bool denorm_min() throw()
{ return false; }
- static const bool is_iec559 = true;
+ static const bool is_iec559 = false;
static const bool is_bounded = true;
- static const bool is_modulo = true;
+ static const bool is_modulo = false;
// It is not clear what it means for a boolean type to trap.
// This is a DR on the LWG issue list. Here, I use integer
diff --git a/libstdc++-v3/testsuite/27_io/ios_init.cc b/libstdc++-v3/testsuite/27_io/ios_init.cc
index 72b9fb4..1905aa6 100644
--- a/libstdc++-v3/testsuite/27_io/ios_init.cc
+++ b/libstdc++-v3/testsuite/27_io/ios_init.cc
@@ -215,6 +215,14 @@ template
template
unsigned short
std::basic_string<unsigned short>::_Rep::_S_terminal;
+
+template
+ std::basic_string<unsigned char>::size_type
+ std::basic_string<unsigned char>::_Rep::_S_max_size;
+
+template
+ unsigned char
+ std::basic_string<unsigned char>::_Rep::_S_terminal;
#endif
int main()