summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'llvm')
-rw-r--r--llvm/include/llvm/Support/ConvertUTF.h24
-rw-r--r--llvm/lib/Support/CMakeLists.txt2
-rw-r--r--llvm/lib/Support/ConvertUTF.cpp (renamed from llvm/lib/Support/ConvertUTF.c)6
3 files changed, 13 insertions, 19 deletions
diff --git a/llvm/include/llvm/Support/ConvertUTF.h b/llvm/include/llvm/Support/ConvertUTF.h
index 5de5774f9db..f714c0ed997 100644
--- a/llvm/include/llvm/Support/ConvertUTF.h
+++ b/llvm/include/llvm/Support/ConvertUTF.h
@@ -90,6 +90,14 @@
#ifndef LLVM_SUPPORT_CONVERTUTF_H
#define LLVM_SUPPORT_CONVERTUTF_H
+#include <string>
+#include <cstddef>
+
+// Wrap everything in namespace llvm so that programs can link with llvm and
+// their own version of the unicode libraries.
+
+namespace llvm {
+
/* ---------------------------------------------------------------------
The following 4 definitions are compiler-specific.
The C standard does not guarantee that wchar_t has at least
@@ -127,11 +135,6 @@ typedef enum {
lenientConversion
} ConversionFlags;
-/* This is for C++ and does no harm in C */
-#ifdef __cplusplus
-extern "C" {
-#endif
-
ConversionResult ConvertUTF8toUTF16 (
const UTF8** sourceStart, const UTF8* sourceEnd,
UTF16** targetStart, UTF16* targetEnd, ConversionFlags flags);
@@ -174,16 +177,9 @@ Boolean isLegalUTF8String(const UTF8 **source, const UTF8 *sourceEnd);
unsigned getNumBytesForUTF8(UTF8 firstByte);
-#ifdef __cplusplus
-}
-
/*************************************************************************/
/* Below are LLVM-specific wrappers of the functions above. */
-#include <string>
-#include <cstddef>
-
-namespace llvm {
template <typename T> class ArrayRef;
template <typename T> class SmallVectorImpl;
class StringRef;
@@ -293,7 +289,3 @@ bool convertUTF8ToUTF16String(StringRef SrcUTF8,
} /* end namespace llvm */
#endif
-
-/* --------------------------------------------------------------------- */
-
-#endif
diff --git a/llvm/lib/Support/CMakeLists.txt b/llvm/lib/Support/CMakeLists.txt
index b188b4cc6cb..9f755450535 100644
--- a/llvm/lib/Support/CMakeLists.txt
+++ b/llvm/lib/Support/CMakeLists.txt
@@ -40,7 +40,7 @@ add_llvm_library(LLVMSupport
COM.cpp
CommandLine.cpp
Compression.cpp
- ConvertUTF.c
+ ConvertUTF.cpp
ConvertUTFWrapper.cpp
CrashRecoveryContext.cpp
DataExtractor.cpp
diff --git a/llvm/lib/Support/ConvertUTF.c b/llvm/lib/Support/ConvertUTF.cpp
index 128459a1d54..39fd218d3f0 100644
--- a/llvm/lib/Support/ConvertUTF.c
+++ b/llvm/lib/Support/ConvertUTF.cpp
@@ -53,6 +53,8 @@
#endif
#include <assert.h>
+namespace llvm {
+
static const int halfShift = 10; /* used for shifting by 10 bits */
static const UTF32 halfBase = 0x0010000UL;
@@ -62,8 +64,6 @@ static const UTF32 halfMask = 0x3FFUL;
#define UNI_SUR_HIGH_END (UTF32)0xDBFF
#define UNI_SUR_LOW_START (UTF32)0xDC00
#define UNI_SUR_LOW_END (UTF32)0xDFFF
-#define false 0
-#define true 1
/* --------------------------------------------------------------------- */
@@ -706,3 +706,5 @@ ConversionResult ConvertUTF8toUTF32(const UTF8 **sourceStart,
similarly unrolled loops.
--------------------------------------------------------------------- */
+
+} // namespace llvm
OpenPOWER on IntegriCloud