aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Support/StringExtras.h
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2001-07-23 17:46:59 +0000
committerChris Lattner <sabre@nondot.org>2001-07-23 17:46:59 +0000
commit57dbb3ad63b6a0e77798edb156ef43daa3bfc67e (patch)
treeb10d00a2fd1de0f409b4f341f0a3b1ace177ec15 /include/llvm/Support/StringExtras.h
parentdbab15a2c9accc0242109881e1632137cb97dbc9 (diff)
downloadexternal_llvm-57dbb3ad63b6a0e77798edb156ef43daa3bfc67e.zip
external_llvm-57dbb3ad63b6a0e77798edb156ef43daa3bfc67e.tar.gz
external_llvm-57dbb3ad63b6a0e77798edb156ef43daa3bfc67e.tar.bz2
Moved inline/llvm/Tools/* to include/llvm/Support/*
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@279 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Support/StringExtras.h')
-rw-r--r--include/llvm/Support/StringExtras.h70
1 files changed, 70 insertions, 0 deletions
diff --git a/include/llvm/Support/StringExtras.h b/include/llvm/Support/StringExtras.h
new file mode 100644
index 0000000..585a42c
--- /dev/null
+++ b/include/llvm/Support/StringExtras.h
@@ -0,0 +1,70 @@
+//===-- StringExtras.h - Useful string functions -----------------*- C++ -*--=//
+//
+// This file contains some functions that are useful when dealing with strings.
+// No library is required when using these functinons.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_TOOLS_STRING_EXTRAS_H
+#define LLVM_TOOLS_STRING_EXTRAS_H
+
+#include <string>
+#include <stdio.h>
+#include "llvm/Support/DataTypes.h"
+
+static inline string utostr(uint64_t X, bool isNeg = false) {
+ char Buffer[40];
+ char *BufPtr = Buffer+39;
+
+ *BufPtr = 0; // Null terminate buffer...
+ if (X == 0) *--BufPtr = '0'; // Handle special case...
+
+ while (X) {
+ *--BufPtr = '0' + (X % 10);
+ X /= 10;
+ }
+
+ if (isNeg) *--BufPtr = '-'; // Add negative sign...
+
+ return string(BufPtr);
+}
+
+static inline string itostr(int64_t X) {
+ if (X < 0)
+ return utostr((uint64_t)-X, true);
+ else
+ return utostr((uint64_t)X);
+}
+
+
+static inline string utostr(unsigned X, bool isNeg = false) {
+ char Buffer[20];
+ char *BufPtr = Buffer+19;
+
+ *BufPtr = 0; // Null terminate buffer...
+ if (X == 0) *--BufPtr = '0'; // Handle special case...
+
+ while (X) {
+ *--BufPtr = '0' + (X % 10);
+ X /= 10;
+ }
+
+ if (isNeg) *--BufPtr = '-'; // Add negative sign...
+
+ return string(BufPtr);
+}
+
+static inline string itostr(int X) {
+ if (X < 0)
+ return utostr((unsigned)-X, true);
+ else
+ return utostr((unsigned)X);
+}
+
+static inline string ftostr(double V) {
+ char Buffer[200];
+ snprintf(Buffer, 200, "%f", V);
+ return Buffer;
+}
+
+#endif