From: Steve Naroff Date: Mon, 13 Apr 2009 20:26:29 +0000 (+0000) Subject: Move/update recent FIXME (wrt UTF-8 checking for ObjC @-strings). X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fd942628abfe30e30427875db953222ae99b4325;p=clang Move/update recent FIXME (wrt UTF-8 checking for ObjC @-strings). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68982 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/CodeGenModule.cpp b/lib/CodeGen/CodeGenModule.cpp index 797c0cef00..79bf4de4f7 100644 --- a/lib/CodeGen/CodeGenModule.cpp +++ b/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/lib/Sema/SemaChecking.cpp b/lib/Sema/SemaChecking.cpp index 1802b6e942..d2aec65cef 100644 --- a/lib/Sema/SemaChecking.cpp +++ b/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(Arg);