Re: [TRIVIAL] strlen("literal string") -> (sizeof("literal string")-1)

Rusty Russell
2002-08-30T05:54:26Z

In message <Pine.LNX.4.44.0208290938180.3234-100000@hawkeye.luckynet.adm> you w
rite:
> Hi,
>
> On Thu, 29 Aug 2002, Rusty Russell wrote:
> > If you really care about that, try:
> >
> > /* Be paranoid in case someone uses strlen(&("FOO"[0])) */
> > #define strlen(x) \
> > (__builtin_constant_p(x) && sizeof(x) != sizeof(char *)
> > ? (sizeof(x) - 1) : __strlen(x))
>
> I must say that doesn't make the code any cleaner, which leads to it being
> not as clean as Keith suggested. It was a code cleanup, not a code messup.

Think harder.

This code would exist in one place: those (four) architectures which
insist on having an inline strlen function. These guys already eat
inline asm for breakfast: it's *their* jobs to jump through hoops so
the driver writers can write simple code and have it work well.

Rusty.
--
Anyone who quotes me in their sig is an idiot. -- Rusty Russell.