On Thu, May 22, 2014 at 08:38:31PM +0200, Paolo Carlini wrote: > Hi, > > On 05/22/2014 01:03 PM, Jakub Jelinek wrote: > >On Thu, May 22, 2014 at 02:26:19PM +0400, Konstantin Serebryany wrote: > >>>>>>FAIL: c-c++-common/asan/asan-interface-1.c -O0 execution test > >>>>>Is that before or after r210743? > >Can't reproduce the above (note, not bootstrapped compiler, just > >--disable-bootstrap), check-gcc RUNTESTFLAGS=asan.exp is clean, > Thanks Jakub. I'm not bootstrapping either, but all the fails are > still there (fetched a fresh tree, built again). I have just noticed > the below during the build, are expected?
In any case, I couldn't reproduce that even during fresh bootstrap/regtest I did. > In file included from > ../../../../trunk/libsanitizer/asan/asan_interceptors.cc:147:0: > ../../../../trunk/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc: > In function ‘int __interceptor_accept4(int, void*, unsigned int*, > int)’: > ../../../../trunk/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:1821:12: > warning: ‘addrlen0’ may be used uninitialized in this function > [-Wmaybe-uninitialized] > unsigned addrlen0; > ^ > ../../../../trunk/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc: > In function ‘int __interceptor_accept(int, void*, unsigned int*)’: > ../../../../trunk/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:1799:12: > warning: ‘addrlen0’ may be used uninitialized in this function > [-Wmaybe-uninitialized] > unsigned addrlen0; > ^ That sounds like a false positive warning: unsigned addrlen0; if (addrlen) { COMMON_INTERCEPTOR_READ_RANGE(ctx, addrlen, sizeof(*addrlen)); addrlen0 = *addrlen; } int fd2 = REAL(accept4)(fd, addr, addrlen, f); if (fd2 >= 0) { if (fd >= 0) COMMON_INTERCEPTOR_FD_SOCKET_ACCEPT(ctx, fd, fd2); if (addr && addrlen) COMMON_INTERCEPTOR_WRITE_RANGE(ctx, addr, Min(*addrlen, addrlen0)); } (unless the COMMON_INTERCEPTOR* macros do too weird stuff), wonder why the predicate aware uninit doesn't handle this. Jakub