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

Rusty Russell (rusty@rustcorp.com.au)
Fri, 30 Aug 2002 13:50:25 +1000


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.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/