http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55617
--- Comment #46 from Jack Howarth <howarth at nitro dot med.uc.edu> 2013-02-03 00:10:02 UTC --- (In reply to comment #40) Also with the patch in Comment 42, the failing test case converted into a shared library loaded via dlopen works fine... % cat libcov.C struct c18 { virtual void bar() { } }; c18 ret; % cat covmain_dl.C #include <stdio.h> #include <stdlib.h> #include <dlfcn.h> int main () { void *lib_handle; lib_handle = dlopen("./libcov.dylib", RTLD_LAZY); if (!lib_handle) { fprintf(stderr, "%s\n", dlerror()); exit(1); } dlclose(lib_handle); } % ./dist/bin/g++-fsf-4.8 -shared -fsanitize=address covmain_dl.C % ./dist/bin/g++-fsf-4.8 -fsanitize=address covmain_dl.C % ./a.out % This also works for a libcov.C compiled into a shared module loaded in covmain_dl.C as libcov.so... % ./dist/bin/g++-fsf-4.8 -bundle -fsanitize=address -o libcov.so libcov.C % ./dist/bin/g++-fsf-4.8 -fsanitize=address covmain_dl.C % a.out %