Skip to content

Commit c08a96a

Browse files
committed
Update references to UTF* types and functions to match llvm r282822.
The content of LLVM's "Support/ConvertUTF.h" header was moved into the "llvm" namespace. Update this code to match.
1 parent b9d1b49 commit c08a96a

File tree

5 files changed

+80
-75
lines changed

5 files changed

+80
-75
lines changed

lib/AST/ASTPrinter.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -491,17 +491,17 @@ bool TypeTransformContext::isPrintingSynthesizedExtension() const {
491491
std::string ASTPrinter::sanitizeUtf8(StringRef Text) {
492492
llvm::SmallString<256> Builder;
493493
Builder.reserve(Text.size());
494-
const UTF8* Data = reinterpret_cast<const UTF8*>(Text.begin());
495-
const UTF8* End = reinterpret_cast<const UTF8*>(Text.end());
494+
const llvm::UTF8* Data = reinterpret_cast<const llvm::UTF8*>(Text.begin());
495+
const llvm::UTF8* End = reinterpret_cast<const llvm::UTF8*>(Text.end());
496496
StringRef Replacement = "\ufffd";
497497
while (Data < End) {
498-
auto Step = getNumBytesForUTF8(*Data);
498+
auto Step = llvm::getNumBytesForUTF8(*Data);
499499
if (Data + Step > End) {
500500
Builder.append(Replacement);
501501
break;
502502
}
503503

504-
if (isLegalUTF8Sequence(Data, Data + Step)) {
504+
if (llvm::isLegalUTF8Sequence(Data, Data + Step)) {
505505
Builder.append(Data, Data + Step);
506506
} else {
507507

lib/AST/Identifier.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,12 @@ raw_ostream &llvm::operator<<(raw_ostream &OS, swift::ObjCSelector S) {
5555

5656
bool Identifier::isOperatorSlow() const {
5757
StringRef data = str();
58-
auto *s = reinterpret_cast<UTF8 const *>(data.begin()),
59-
*end = reinterpret_cast<UTF8 const *>(data.end());
60-
UTF32 codePoint;
61-
ConversionResult res = llvm::convertUTF8Sequence(&s, end, &codePoint,
62-
strictConversion);
63-
assert(res == conversionOK && "invalid UTF-8 in identifier?!");
58+
auto *s = reinterpret_cast<llvm::UTF8 const *>(data.begin()),
59+
*end = reinterpret_cast<llvm::UTF8 const *>(data.end());
60+
llvm::UTF32 codePoint;
61+
llvm::ConversionResult res =
62+
llvm::convertUTF8Sequence(&s, end, &codePoint, llvm::strictConversion);
63+
assert(res == llvm::conversionOK && "invalid UTF-8 in identifier?!");
6464
(void)res;
6565
return !empty() && isOperatorStartCodePoint(codePoint);
6666
}

lib/Basic/Unicode.cpp

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,15 @@ StringRef swift::unicode::extractFirstExtendedGraphemeCluster(StringRef S) {
2222
if (S.empty())
2323
return StringRef();
2424

25-
const UTF8 *SourceStart = reinterpret_cast<const UTF8 *>(S.data());
25+
const llvm::UTF8 *SourceStart =
26+
reinterpret_cast<const llvm::UTF8 *>(S.data());
2627

27-
const UTF8 *SourceNext = SourceStart;
28-
UTF32 C[2];
29-
UTF32 *TargetStart = C;
28+
const llvm::UTF8 *SourceNext = SourceStart;
29+
llvm::UTF32 C[2];
30+
llvm::UTF32 *TargetStart = C;
3031

3132
ConvertUTF8toUTF32(&SourceNext, SourceStart + S.size(), &TargetStart, C + 1,
32-
lenientConversion);
33+
llvm::lenientConversion);
3334
if (TargetStart == C) {
3435
// The source string contains an ill-formed subsequence at the end.
3536
return S;
@@ -42,7 +43,7 @@ StringRef swift::unicode::extractFirstExtendedGraphemeCluster(StringRef S) {
4243

4344
size_t C1Offset = SourceNext - SourceStart;
4445
ConvertUTF8toUTF32(&SourceNext, SourceStart + S.size(), &TargetStart, C + 2,
45-
lenientConversion);
46+
llvm::lenientConversion);
4647

4748
if (TargetStart == C + 1) {
4849
// End of source string or the source string contains an ill-formed
@@ -65,14 +66,15 @@ static bool extractFirstUnicodeScalarImpl(StringRef S, unsigned &Scalar) {
6566
if (S.empty())
6667
return false;
6768

68-
const UTF8 *SourceStart = reinterpret_cast<const UTF8 *>(S.data());
69+
const llvm::UTF8 *SourceStart =
70+
reinterpret_cast<const llvm::UTF8 *>(S.data());
6971

70-
const UTF8 *SourceNext = SourceStart;
71-
UTF32 C;
72-
UTF32 *TargetStart = &C;
72+
const llvm::UTF8 *SourceNext = SourceStart;
73+
llvm::UTF32 C;
74+
llvm::UTF32 *TargetStart = &C;
7375

7476
ConvertUTF8toUTF32(&SourceNext, SourceStart + S.size(), &TargetStart,
75-
TargetStart + 1, lenientConversion);
77+
TargetStart + 1, llvm::lenientConversion);
7678
if (TargetStart == &C) {
7779
// The source string contains an ill-formed subsequence at the end.
7880
return false;
@@ -98,13 +100,14 @@ unsigned swift::unicode::extractFirstUnicodeScalar(StringRef S) {
98100
uint64_t swift::unicode::getUTF16Length(StringRef Str) {
99101
uint64_t Length;
100102
// Transcode the string to UTF-16 to get its length.
101-
SmallVector<UTF16, 128> buffer(Str.size() + 1); // +1 for ending nulls.
102-
const UTF8 *fromPtr = (const UTF8 *) Str.data();
103-
UTF16 *toPtr = &buffer[0];
104-
ConversionResult Result = ConvertUTF8toUTF16(&fromPtr, fromPtr + Str.size(),
105-
&toPtr, toPtr + Str.size(),
106-
strictConversion);
107-
assert(Result == conversionOK &&
103+
SmallVector<llvm::UTF16, 128> buffer(Str.size() + 1); // +1 for ending nulls.
104+
const llvm::UTF8 *fromPtr = (const llvm::UTF8 *) Str.data();
105+
llvm::UTF16 *toPtr = &buffer[0];
106+
llvm::ConversionResult Result =
107+
ConvertUTF8toUTF16(&fromPtr, fromPtr + Str.size(),
108+
&toPtr, toPtr + Str.size(),
109+
llvm::strictConversion);
110+
assert(Result == llvm::conversionOK &&
108111
"UTF-8 encoded string cannot be converted into UTF-16 encoding");
109112
(void)Result;
110113

lib/IRGen/GenDecl.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2965,19 +2965,19 @@ llvm::Constant *IRGenModule::getAddrOfGlobalUTF16String(StringRef utf8) {
29652965
if (entry) return entry;
29662966

29672967
// If not, first transcode it to UTF16.
2968-
SmallVector<UTF16, 128> buffer(utf8.size() + 1); // +1 for ending nulls.
2969-
const UTF8 *fromPtr = (const UTF8 *) utf8.data();
2970-
UTF16 *toPtr = &buffer[0];
2968+
SmallVector<llvm::UTF16, 128> buffer(utf8.size() + 1); // +1 for ending nulls.
2969+
const llvm::UTF8 *fromPtr = (const llvm::UTF8 *) utf8.data();
2970+
llvm::UTF16 *toPtr = &buffer[0];
29712971
(void) ConvertUTF8toUTF16(&fromPtr, fromPtr + utf8.size(),
29722972
&toPtr, toPtr + utf8.size(),
2973-
strictConversion);
2973+
llvm::strictConversion);
29742974

29752975
// The length of the transcoded string in UTF-8 code points.
29762976
size_t utf16Length = toPtr - &buffer[0];
29772977

29782978
// Null-terminate the UTF-16 string.
29792979
*toPtr = 0;
2980-
ArrayRef<UTF16> utf16(&buffer[0], utf16Length + 1);
2980+
ArrayRef<llvm::UTF16> utf16(&buffer[0], utf16Length + 1);
29812981

29822982
auto init = llvm::ConstantDataArray::get(LLVMContext, utf16);
29832983
auto global = new llvm::GlobalVariable(Module, init->getType(), true,

lib/Immediate/REPL.cpp

Lines changed: 44 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -76,56 +76,58 @@ class ConvertForWcharSize;
7676
template<>
7777
class ConvertForWcharSize<2> {
7878
public:
79-
static ConversionResult ConvertFromUTF8(const char** sourceStart,
80-
const char* sourceEnd,
81-
wchar_t** targetStart,
82-
wchar_t* targetEnd,
83-
ConversionFlags flags) {
84-
return ConvertUTF8toUTF16(reinterpret_cast<const UTF8**>(sourceStart),
85-
reinterpret_cast<const UTF8*>(sourceEnd),
86-
reinterpret_cast<UTF16**>(targetStart),
87-
reinterpret_cast<UTF16*>(targetEnd),
79+
static llvm::ConversionResult ConvertFromUTF8(const char** sourceStart,
80+
const char* sourceEnd,
81+
wchar_t** targetStart,
82+
wchar_t* targetEnd,
83+
llvm::ConversionFlags flags) {
84+
return ConvertUTF8toUTF16(reinterpret_cast<const llvm::UTF8**>(sourceStart),
85+
reinterpret_cast<const llvm::UTF8*>(sourceEnd),
86+
reinterpret_cast<llvm::UTF16**>(targetStart),
87+
reinterpret_cast<llvm::UTF16*>(targetEnd),
8888
flags);
8989
}
9090

91-
static ConversionResult ConvertToUTF8(const wchar_t** sourceStart,
92-
const wchar_t* sourceEnd,
93-
char** targetStart,
94-
char* targetEnd,
95-
ConversionFlags flags) {
96-
return ConvertUTF16toUTF8(reinterpret_cast<const UTF16**>(sourceStart),
97-
reinterpret_cast<const UTF16*>(sourceEnd),
98-
reinterpret_cast<UTF8**>(targetStart),
99-
reinterpret_cast<UTF8*>(targetEnd),
100-
flags);
91+
static llvm::ConversionResult ConvertToUTF8(const wchar_t** sourceStart,
92+
const wchar_t* sourceEnd,
93+
char** targetStart,
94+
char* targetEnd,
95+
llvm::ConversionFlags flags) {
96+
return ConvertUTF16toUTF8(
97+
reinterpret_cast<const llvm::UTF16**>(sourceStart),
98+
reinterpret_cast<const llvm::UTF16*>(sourceEnd),
99+
reinterpret_cast<llvm::UTF8**>(targetStart),
100+
reinterpret_cast<llvm::UTF8*>(targetEnd),
101+
flags);
101102
}
102103
};
103104

104105
template<>
105106
class ConvertForWcharSize<4> {
106107
public:
107-
static ConversionResult ConvertFromUTF8(const char** sourceStart,
108-
const char* sourceEnd,
109-
wchar_t** targetStart,
110-
wchar_t* targetEnd,
111-
ConversionFlags flags) {
112-
return ConvertUTF8toUTF32(reinterpret_cast<const UTF8**>(sourceStart),
113-
reinterpret_cast<const UTF8*>(sourceEnd),
114-
reinterpret_cast<UTF32**>(targetStart),
115-
reinterpret_cast<UTF32*>(targetEnd),
108+
static llvm::ConversionResult ConvertFromUTF8(const char** sourceStart,
109+
const char* sourceEnd,
110+
wchar_t** targetStart,
111+
wchar_t* targetEnd,
112+
llvm::ConversionFlags flags) {
113+
return ConvertUTF8toUTF32(reinterpret_cast<const llvm::UTF8**>(sourceStart),
114+
reinterpret_cast<const llvm::UTF8*>(sourceEnd),
115+
reinterpret_cast<llvm::UTF32**>(targetStart),
116+
reinterpret_cast<llvm::UTF32*>(targetEnd),
116117
flags);
117118
}
118119

119-
static ConversionResult ConvertToUTF8(const wchar_t** sourceStart,
120-
const wchar_t* sourceEnd,
121-
char** targetStart,
122-
char* targetEnd,
123-
ConversionFlags flags) {
124-
return ConvertUTF32toUTF8(reinterpret_cast<const UTF32**>(sourceStart),
125-
reinterpret_cast<const UTF32*>(sourceEnd),
126-
reinterpret_cast<UTF8**>(targetStart),
127-
reinterpret_cast<UTF8*>(targetEnd),
128-
flags);
120+
static llvm::ConversionResult ConvertToUTF8(const wchar_t** sourceStart,
121+
const wchar_t* sourceEnd,
122+
char** targetStart,
123+
char* targetEnd,
124+
llvm::ConversionFlags flags) {
125+
return ConvertUTF32toUTF8(
126+
reinterpret_cast<const llvm::UTF32**>(sourceStart),
127+
reinterpret_cast<const llvm::UTF32*>(sourceEnd),
128+
reinterpret_cast<llvm::UTF8**>(targetStart),
129+
reinterpret_cast<llvm::UTF8*>(targetEnd),
130+
flags);
129131
}
130132
};
131133

@@ -140,8 +142,8 @@ static void convertFromUTF8(llvm::StringRef utf8,
140142
wchar_t *wide_begin = out.end();
141143
auto res = Convert::ConvertFromUTF8(&utf8_begin, utf8.end(),
142144
&wide_begin, out.data() + reserve,
143-
lenientConversion);
144-
assert(res == conversionOK && "utf8-to-wide conversion failed!");
145+
llvm::lenientConversion);
146+
assert(res == llvm::conversionOK && "utf8-to-wide conversion failed!");
145147
(void)res;
146148
out.set_size(wide_begin - out.begin());
147149
}
@@ -154,8 +156,8 @@ static void convertToUTF8(llvm::ArrayRef<wchar_t> wide,
154156
char *utf8_begin = out.end();
155157
auto res = Convert::ConvertToUTF8(&wide_begin, wide.end(),
156158
&utf8_begin, out.data() + reserve,
157-
lenientConversion);
158-
assert(res == conversionOK && "wide-to-utf8 conversion failed!");
159+
llvm::lenientConversion);
160+
assert(res == llvm::conversionOK && "wide-to-utf8 conversion failed!");
159161
(void)res;
160162
out.set_size(utf8_begin - out.begin());
161163
}

0 commit comments

Comments
 (0)