str.assign((char *)&ToBuf[0], StringLength*2);// Twice as many UTF8 chars.
isUTF16 = true;
} else if (Result == sourceIllegal) {
- // FIXME: GCC currently emits the following warning (in the backend):
- // "warning: input conversion stopped due to an input byte that does not
- // belong to the input codeset UTF-8"
- // The clang backend doesn't currently emit any warnings.
+ // FIXME: Have Sema::CheckObjCString() validate the UTF-8 string.
str.assign(Literal->getStrData(), Literal->getByteLength());
StringLength = str.length();
} else
/// CheckObjCString - Checks that the argument to the builtin
/// CFString constructor is correct
+/// FIXME: GCC currently emits the following warning:
+/// "warning: input conversion stopped due to an input byte that does not
+/// belong to the input codeset UTF-8"
+/// Note: It might also make sense to do the UTF-16 conversion here (would
+/// simplify the backend).
bool Sema::CheckObjCString(Expr *Arg) {
Arg = Arg->IgnoreParenCasts();
StringLiteral *Literal = dyn_cast<StringLiteral>(Arg);