summaryrefslogtreecommitdiff
path: root/include/llvm/ADT/StringExtras.h
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2008-10-14 23:26:20 +0000
committerDaniel Dunbar <daniel@zuster.org>2008-10-14 23:26:20 +0000
commitc9debfbf06c3fa717b16548a99b9a3f381d4eae7 (patch)
treee0e7ad71b46bcb15b1dbcbb2e56ef09cd587cf70 /include/llvm/ADT/StringExtras.h
parent13739433d0b0edbb5e2432b6591e08d636e87594 (diff)
downloadllvm-c9debfbf06c3fa717b16548a99b9a3f381d4eae7.tar.gz
llvm-c9debfbf06c3fa717b16548a99b9a3f381d4eae7.tar.bz2
llvm-c9debfbf06c3fa717b16548a99b9a3f381d4eae7.tar.xz
Add llvm::hexdigit to StringExtras (number -> hexadecimal char)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57536 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/ADT/StringExtras.h')
-rw-r--r--include/llvm/ADT/StringExtras.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/include/llvm/ADT/StringExtras.h b/include/llvm/ADT/StringExtras.h
index 87b8ba6596..872c8451bf 100644
--- a/include/llvm/ADT/StringExtras.h
+++ b/include/llvm/ADT/StringExtras.h
@@ -23,6 +23,12 @@
namespace llvm {
+/// hexdigit - Return the (uppercase) hexadecimal character for the
+/// given number \arg X (which should be less than 16).
+static inline char hexdigit(unsigned X) {
+ return X < 10 ? '0' + X : 'A' + X - 10;
+}
+
static inline std::string utohexstr(uint64_t X) {
char Buffer[40];
char *BufPtr = Buffer+39;
@@ -32,10 +38,7 @@ static inline std::string utohexstr(uint64_t X) {
while (X) {
unsigned char Mod = static_cast<unsigned char>(X) & 15;
- if (Mod < 10)
- *--BufPtr = '0' + Mod;
- else
- *--BufPtr = 'A' + Mod-10;
+ *--BufPtr = hexdigit(Mod);
X >>= 4;
}
return std::string(BufPtr);