f785676f2a
all of the features in the current working draft of the upcoming C++ standard, provisionally named C++1y. The code generator's performance is greatly increased, and the loop auto-vectorizer is now enabled at -Os and -O2 in addition to -O3. The PowerPC backend has made several major improvements to code generation quality and compile time, and the X86, SPARC, ARM32, Aarch64 and SystemZ backends have all seen major feature work. Release notes for llvm and clang can be found here: <http://llvm.org/releases/3.4/docs/ReleaseNotes.html> <http://llvm.org/releases/3.4/tools/clang/docs/ReleaseNotes.html> MFC after: 1 month
32 lines
837 B
C++
32 lines
837 B
C++
#include "llvm/Support/Locale.h"
|
|
#include "llvm/Support/Unicode.h"
|
|
|
|
namespace llvm {
|
|
namespace sys {
|
|
namespace locale {
|
|
|
|
int columnWidth(StringRef Text) {
|
|
#if LLVM_ON_WIN32
|
|
return Text.size();
|
|
#else
|
|
return llvm::sys::unicode::columnWidthUTF8(Text);
|
|
#endif
|
|
}
|
|
|
|
bool isPrint(int UCS) {
|
|
#if LLVM_ON_WIN32
|
|
// Restrict characters that we'll try to print to the the lower part of ASCII
|
|
// except for the control characters (0x20 - 0x7E). In general one can not
|
|
// reliably output code points U+0080 and higher using narrow character C/C++
|
|
// output functions in Windows, because the meaning of the upper 128 codes is
|
|
// determined by the active code page in the console.
|
|
return ' ' <= UCS && UCS <= '~';
|
|
#else
|
|
return llvm::sys::unicode::isPrintable(UCS);
|
|
#endif
|
|
}
|
|
|
|
} // namespace locale
|
|
} // namespace sys
|
|
} // namespace llvm
|