diff options
author | Steve Naroff <snaroff@apple.com> | 2009-04-13 20:26:29 +0000 |
---|---|---|
committer | Steve Naroff <snaroff@apple.com> | 2009-04-13 20:26:29 +0000 |
commit | fd942628abfe30e30427875db953222ae99b4325 (patch) | |
tree | 9e0e0a4aba5269421888345e00c650483e373863 | |
parent | db678c6b0c3bdf5b9ba56bb21960cfa2d54c4f87 (diff) |
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
-rw-r--r-- | lib/CodeGen/CodeGenModule.cpp | 5 | ||||
-rw-r--r-- | lib/Sema/SemaChecking.cpp | 5 |
2 files changed, 6 insertions, 4 deletions
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<StringLiteral>(Arg); |