From: Maarten B. <sou...@ds...> - 2017-11-04 16:13:23
|
> Hello, > > The pic16library has a function memchrpgm() that throws a few warnings: > > string/memchrpgm.c:36: warning 196: pointer target lost const qualifier > string/memchrpgm.c:45: warning 196: pointer target lost const qualifier > string/memchrpgm.c:47: warning 196: pointer target lost const qualifier > > When I look at the source I see no reason for this warning. > > But I also don't understand what this function is supposed to do. > > __code void * > memchrpgm (__code void *s, char c, size_t count) > { > if (!count) > return NULL; //line 36 > > while ((*(__code char *)s != c) && count) > { > s = (__code char *)s + sizeof (__code char *); > --count; > } > > if (count) > return s; //line 45 > else > return NULL; //line 47 > } > > Is s supposed to be an array of count __code char pointers (strings in > flash)? And then this function searches for the first one starting with c? > That doesn't really resemble what a normal memchr() would do. > > May I suggest we just remove this one? > > Maarten And btw. the pic16 memchr() implementation does the same which is a bug. |