Date: Sat, 30 Dec 2006 22:52:12 -0800 From: perryh@pluto.rain.com To: freebsd-hackers@freebsd.org Subject: how to deal with const Message-ID: <45975e1c.zZgcyHPeHeBwZNlg%perryh@pluto.rain.com>
next in thread | raw e-mail | index | archive | help
I'm working on a kernel project that needs strstr(3). It looks as if most of the str* functions in libkern are very similar, if not identical, to their counterparts in libc/string, but that approach does not seem to work for strstr (#s added): 1: char * 2: strstr(s, find) 3: const char *s, *find; 4: { 5: char c, sc; 6: size_t len; 7: 8: if ((c = *find++) != 0) { 9: len = strlen(find); 10: do { 11: do { 12: if ((sc = *s++) == 0) 13: return (NULL); 14: } while (sc != c); 15: } while (strncmp(s, find, len) != 0); 16: s--; 17: } 18: return ((char *)s); 19: } I get a "warning: cast discards qualifiers from pointer target type" on line 18. If I remove the cast, changing it to just "return (s);", I get "warning: return discards qualifiers from pointer target type" (and because this is the kernel, those "warning" messages are actually treated as errors). What is the accepted method of dealing with this sort of thing?
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?45975e1c.zZgcyHPeHeBwZNlg%perryh>