viralcode / address-sanitizer

Automatically exported from code.google.com/p/address-sanitizer
1 stars 0 forks source link

GCD tests are broken on Mac OS 10.6 #35

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
asanbot has started reporting failures in GCD tests on Mac OS 10.6 today:
[  FAILED  ] AddressSanitizerMac.GCDDispatchAsync
[  FAILED  ] AddressSanitizerMac.GCDDispatchSync
[  FAILED  ] AddressSanitizerMac.GCDReuseWqthreadsAsync
[  FAILED  ] AddressSanitizerMac.GCDReuseWqthreadsSync
[  FAILED  ] AddressSanitizerMac.GCDDispatchAfter
[  FAILED  ] AddressSanitizerMac.GCDSourceEvent
[  FAILED  ] AddressSanitizerMac.GCDSourceCancel
[  FAILED  ] AddressSanitizerMac.GCDGroupAsync

This may be caused by issue 33 or by something else.

Original issue reported on code.google.com by ramosian.glider@gmail.com on 30 Jan 2012 at 2:46

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
I can see that a very simple ObjC test does not work with O2 (on Linux).

% cat foo.mm 
#include <stdlib.h>
int main(int argc, char **argv) {
  int *a = (int*)malloc(10 * sizeof(int));
  int res = a[argc + 10];
  free(a);
  return res;
}
% clang -O1 -ObjC  foo.mm -faddress-sanitizer  && ./a.out 2>&1 | grep ERROR
==11562== ERROR: AddressSanitizer heap-buffer-overflow on address 
0x7f91d5144fac at pc 0x401e90 bp 0x7fffccf6c0b0 sp 0x7fffccf6c0a8
% clang -O2 -ObjC  foo.mm -faddress-sanitizer  && ./a.out 2>&1 | grep ERROR
% 

Original comment by konstant...@gmail.com on 30 Jan 2012 at 11:06

GoogleCodeExporter commented 9 years ago
And most of the asan GCD tests pass if built with -O1. 
I guess the optimizer is being too smart. 

Original comment by konstant...@gmail.com on 30 Jan 2012 at 11:12

GoogleCodeExporter commented 9 years ago
r149296 fixes the problem by not letting the optimizer to optimize away the 
test code. 

Original comment by konstant...@gmail.com on 30 Jan 2012 at 11:29