On Fri, Feb 15, 2013 at 06:01:05PM -0500, Jack Howarth wrote: > On Fri, Feb 15, 2013 at 09:54:19PM +0100, Dodji Seketeli wrote: > FAIL: c-c++-common/asan/no-redundant-instrumentation-7.c -O0 > scan-tree-dump-times asan0 "__builtin___asan_report_load" 6 > > at both -m32 and -m64. The no-redundant-instrumentation-7.s from the failing > -m64 > test case is attached, generated with...
I think void foo (int *a, char *b, char *c) { __builtin_memcmp (s.a, e, 100); __builtin_memcmp (s.a, e, 200); } is problematic, for -O1 both calls would be definitely removed, because they are pure, and even at -O0 I guess they might be expanded into nothing. Perhaps int foo () { int i = __builtin_memcmp (s.a, e, 100); i += __builtin_memcmp (s.a, e, 200); return i; } or similar would work better. And for pr56330.c testcase, which is there to verify that we don't ICE on it and I believe there was important that both builtins are adjacent, perhaps it should be __builtin_memcpy instead. Jakub