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" } */
}