zlaski      02/09/23 19:13:51

  Modified:    gcc      c-common.c
               gcc/testsuite/objc.dg const-cfstring-2.m
  Log:
  Improved fix for 2167085, which now also warns about embedded NUL chars
  (this has been OKd with Ali Ozer).  Committed as obvious.
  
  Revision  Changes    Path
  1.80      +7 -3      gcc3/gcc/c-common.c
  
  Index: c-common.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/c-common.c,v
  retrieving revision 1.79
  retrieving revision 1.80
  diff -u -r1.79 -r1.80
  --- c-common.c        2002/09/23 22:52:35     1.79
  +++ c-common.c        2002/09/24 02:13:50     1.80
  @@ -6764,9 +6764,13 @@
         char *s = TREE_STRING_POINTER (str);
         int l = 0;
         
  -      while (l < length && isascii (s[l])) l++;
  -      if (!isascii (s[l]))
  -     warning ("non-ASCII characters in CFString literal");
  +      for (l = 0; l < length; l++)
  +     if (!s[l] || !isascii (s[l]))
  +       {
  +         warning ("%s in CFString literal", 
  +                  s[l] ? "non-ASCII character" : "embedded NUL");
  +         break;
  +       }
       }
   
     initlist = build_tree_list
  
  
  
  1.2       +6 -3      gcc3/gcc/testsuite/objc.dg/const-cfstring-2.m
  
  Index: const-cfstring-2.m
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/testsuite/objc.dg/const-cfstring-2.m,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- const-cfstring-2.m        2002/09/23 22:52:38     1.1
  +++ const-cfstring-2.m        2002/09/24 02:13:51     1.2
  @@ -17,7 +17,10 @@
   void foo(void) {
     NSString *s1 = @"Compile-time string literal";
     CFStringRef s2 = CFSTR("Compile-time string literal");
  -  NSString *s3 = @"Non-ASCII literal - \222";         /* { dg-warning "non-ASCII 
characters in CFString literal" } */
  -  CFStringRef s4 = CFSTR("\222 - Non-ASCII literal"); /* { dg-warning "non-ASCII 
characters in CFString literal" } */
  -  CFStringRef s5 = CFSTR("Non-ASCII (\222) literal"); /* { dg-warning "non-ASCII 
characters in CFString literal" } */
  +  NSString *s3 = @"Non-ASCII literal - \222";         /* { dg-warning "non-ASCII 
character in CFString literal" } */
  +  CFStringRef s4 = CFSTR("\222 - Non-ASCII literal"); /* { dg-warning "non-ASCII 
character in CFString literal" } */
  +  CFStringRef s5 = CFSTR("Non-ASCII (\222) literal"); /* { dg-warning "non-ASCII 
character in CFString literal" } */
  +  NSString *s6 = @"\0Embedded NUL";         /* { dg-warning "embedded NUL in 
CFString literal" } */
  +  CFStringRef s7 = CFSTR("Embedded \0NUL"); /* { dg-warning "embedded NUL in 
CFString literal" } */
  +  CFStringRef s8 = CFSTR("Embedded NUL\0"); /* { dg-warning "embedded NUL in 
CFString literal" } */
   }
  
  
  


Reply via email to