summaryrefslogtreecommitdiff
path: root/src/base/str.cc
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2009-04-06 10:19:36 -0700
committerGabe Black <gblack@eecs.umich.edu>2009-04-06 10:19:36 -0700
commitd080581db1f9ee4e1e6d07d2b01c13c67908a391 (patch)
treecc484b289fa5a30c4631f9faa1d8b456bffeebfc /src/base/str.cc
parent7a7c4c5fca83a8d47c7e71c9c080a882ebe204a9 (diff)
parent639cb0a42d953ee32bc7e96b0cdfa96cd40e9fc1 (diff)
downloadgem5-d080581db1f9ee4e1e6d07d2b01c13c67908a391.tar.xz
Merge ARM into the head. ARM will compile but may not actually work.
Diffstat (limited to 'src/base/str.cc')
-rw-r--r--src/base/str.cc15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/base/str.cc b/src/base/str.cc
index 0a517dff5..2df1c103c 100644
--- a/src/base/str.cc
+++ b/src/base/str.cc
@@ -28,10 +28,10 @@
* Authors: Nathan Binkert
*/
-#include <ctype.h>
-
+#include <cctype>
#include <cstring>
#include <iostream>
+#include <limits>
#include <string>
#include <vector>
@@ -117,12 +117,11 @@ inline bool
__to_number(string value, T &retval)
{
static const T maxnum = ((T)-1);
- static const bool sign = maxnum < 0;
- static const int bits = sizeof(T) * 8;
- static const T hexmax = maxnum & (((T)1 << (bits - 4 - sign)) - 1);
- static const T octmax = maxnum & (((T)1 << (bits - 3 - sign)) - 1);
- static const T signmax =
- (sign) ? maxnum & (((T)1 << (bits - 1)) - 1) : maxnum;
+ static const bool sign = numeric_limits<T>::is_signed;
+ static const int bits = numeric_limits<T>::digits;
+ static const T hexmax = maxnum & (((T)1 << (bits - 4)) - 1);
+ static const T octmax = maxnum & (((T)1 << (bits - 3)) - 1);
+ static const T signmax = numeric_limits<T>::max();
static const T decmax = signmax / 10;
#if 0