diff options
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/CodeGen/CodeGenModule.cpp | 5 | ||||
-rw-r--r-- | clang/lib/Sema/SemaChecking.cpp | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index 797c0cef000..79bf4de4f7a 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -1070,10 +1070,7 @@ GetAddrOfConstantCFString(const StringLiteral *Literal) { 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 diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp index 1802b6e9425..d2aec65cef2 100644 --- a/clang/lib/Sema/SemaChecking.cpp +++ b/clang/lib/Sema/SemaChecking.cpp @@ -159,6 +159,11 @@ Sema::CheckFunctionCall(FunctionDecl *FDecl, CallExpr *TheCall) { /// 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); |