This allows 2 suppressions to be removed.
(Addr)&VG_(amd64_darwin_REDIR_FOR_strcpy), NULL);
add_hardwired_spec("dyld", "strlcat",
(Addr)&VG_(amd64_darwin_REDIR_FOR_strlcat), NULL);
+ add_hardwired_spec("dyld", "bcmp",
+ (Addr)&VG_(amd64_darwin_REDIR_FOR_bcmp), NULL);
// DDD: #warning fixme rdar://6166275
add_hardwired_spec("dyld", "arc4random",
(Addr)&VG_(amd64_darwin_REDIR_FOR_arc4random), NULL);
2:
popq %rbp
ret
+
+.globl VG_(amd64_darwin_REDIR_FOR_bcmp)
+VG_(amd64_darwin_REDIR_FOR_bcmp):
+ xorl %eax, %eax
+ xorl %ecx, %ecx
+1:
+ cmpq %rcx, %rdx
+ je 2f
+ movzbl (%rdi,%rcx), %r8d
+ cmpb (%rsi,%rcx), %r8b
+ leaq 1(%rcx), %rcx
+ je 1b
+ movl $1, %eax
+2:
+ ret
.globl VG_(trampoline_stuff_end)
VG_(trampoline_stuff_end):
extern char* VG_(amd64_darwin_REDIR_FOR_strcpy)( char *s1, char *s2 );
extern SizeT VG_(amd64_darwin_REDIR_FOR_strlcat)( char *s1, const char *s2,
SizeT size );
+extern SizeT VG_(amd64_darwin_REDIR_FOR_bcmp)( const void *s1, const void *s2,
+ SizeT len );
extern UInt VG_(amd64_darwin_REDIR_FOR_arc4random)( void );
# if DARWIN_VERS == DARWIN_10_9
extern char* VG_(amd64_darwin_REDIR_FOR_strchr)( const char*, int );
obj:*libdyld*dylib*
}
-{
- OSX1013:dyld-3
- Memcheck:Cond
- fun:bcmp
- fun:_ZN16ImageLoaderMachO18validateFirstPagesEPK21linkedit_data_commandiPKhmxRKN11ImageLoader11LinkContextE
-}
-
-{
- OSX1013:dyld-4
- Memcheck:Value8
- fun:bcmp
- fun:_ZN16ImageLoaderMachO18validateFirstPagesEPK21linkedit_data_commandiPKhmxRKN11ImageLoader11LinkContextE
-}
-
{
OSX1013:dyld-5
Memcheck:Cond