]> granicus.if.org Git - clang/commitdiff
Remove warning for null characters in CFString literals. Clang handles them just...
authorTed Kremenek <kremenek@apple.com>
Tue, 15 Mar 2011 21:18:52 +0000 (21:18 +0000)
committerTed Kremenek <kremenek@apple.com>
Tue, 15 Mar 2011 21:18:52 +0000 (21:18 +0000)
We added this warning back in 2007 when we were comparing against GCC 4.0.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127704 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Basic/DiagnosticSemaKinds.td
lib/Sema/SemaChecking.cpp
test/Sema/builtins.c
test/SemaObjC/exprs.m

index 5b58ae8ab972abf068cfa9b04eaec7c17ed1a84e..c42a82b5f6c605e870bcb35cfa706de0038096ba 100644 (file)
@@ -3607,8 +3607,6 @@ def err_block_returning_array_function : Error<
 // CFString checking
 def err_cfstring_literal_not_string_constant : Error<
   "CFString literal is not a string constant">;
-def warn_cfstring_literal_contains_nul_character : Warning<
-  "CFString literal contains NUL character">;
 def warn_cfstring_truncated : Warning<
   "input conversion stopped due to an input byte that does not "
   "belong to the input codeset UTF-8">;
index 24cf23bf436def522d41e9b2d5c5528133b8100c..de5a796410854bd70d7f7ce709cf2541bee48d82 100644 (file)
@@ -552,12 +552,6 @@ bool Sema::CheckObjCString(Expr *Arg) {
     return true;
   }
 
-  size_t NulPos = Literal->getString().find('\0');
-  if (NulPos != llvm::StringRef::npos) {
-    Diag(getLocationOfStringLiteralByte(Literal, NulPos),
-         diag::warn_cfstring_literal_contains_nul_character)
-      << Arg->getSourceRange();
-  }
   if (Literal->containsNonAsciiOrNull()) {
     llvm::StringRef String = Literal->getString();
     unsigned NumBytes = String.size();
index 4072faa94b9f829d47af9e8184994c9a23edd685..64efefc7fdaddca6ecaf0e25865ee3a7954d1441 100644 (file)
@@ -27,7 +27,7 @@ int test6(float a, long double b) {
 void test7() {
   const void *X;
   X = CFSTR("\242"); // expected-warning {{input conversion stopped}}
-  X = CFSTR("\0"); // expected-warning {{ CFString literal contains NUL character }}
+  X = CFSTR("\0"); // no-warning
   X = CFSTR(242); // expected-error {{ CFString literal is not a string constant }} expected-warning {{incompatible integer to pointer conversion}}
   X = CFSTR("foo", "bar"); // expected-error {{too many arguments to function call}}
 }
index 13c34e5650de94044e0d93a23e1ba8e9d4987d67..d7c122356f5864895310bb6fe15f179c544e4df7 100644 (file)
@@ -9,12 +9,12 @@ Class test1(Class X) {
 // rdar://6079877
 void test2() {
   id str = @"foo" 
-          "bar\0"    // expected-warning {{literal contains NUL character}}
+          "bar\0"    // no-warning
           @"baz"  " blarg";
   id str2 = @"foo" 
             "bar"
            @"baz"
-           " b\0larg";  // expected-warning {{literal contains NUL character}}
+           " b\0larg";  // no-warning
 
   
   if (@encode(int) == "foo") { }  // expected-warning {{result of comparison against @encode is unspecified}}