[PATCH][AArch64] Add rawmemchr

Alexander Cherepanov ch3root@openwall.com
Thu Jun 2 13:08:00 GMT 2016


On 2016-05-27 16:29, Wilco Dijkstra wrote:
> Add a simple rawmemchr implementation. Use strlen for rawmemchr(s, '\0') as
> it is the fastest way to search for '\0'.  Otherwise use memchr with an infinite size.
> This is 3x faster on benchtests for large sizes.

Is memchr on your arch guaranteed to work with an infinite size?

In theory, it's guaranteed by C11 and POSIX (e.g. see 
http://open-std.org/jtc1/sc22/wg14/www/docs/n1533.htm ) but IIUC there 
is a sentiment in the glibc community that passing to a library function 
a size greater than the real size of an object is an error. (Would be 
glad to find out I misunderstood something here.)

In practice, memchr with an infinite size is broken at least on x86-64 
and i386 -- https://sourceware.org/bugzilla/show_bug.cgi?id=19387 .

-- 
Alexander Cherepanov



More information about the Libc-alpha mailing list