[Bug sanitizer/55617] static constructors are not being instrumented correctly on darwin
glider at google dot com
gcc-bugzilla@gcc.gnu.org
Tue Jan 29 09:59:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55617
--- Comment #6 from Alexander Potapenko <glider at google dot com> 2013-01-29 09:59:09 UTC ---
Looking at the disassembly I see that __asan_init is placed into some
__GLOBAL__sub_I_00099_1_cov.cc function, which isn't being called at runtime
(__GLOBAL__sub_I_cov.cc is called instead):
0000000100000d31 <__Z41__static_initialization_and_destruction_0ii>:
100000d31: 55 push %rbp
100000d32: 48 89 e5 mov %rsp,%rbp
100000d35: 48 83 ec 10 sub $0x10,%rsp
100000d39: 89 7d fc mov %edi,-0x4(%rbp)
100000d3c: 89 75 f8 mov %esi,-0x8(%rbp)
100000d3f: 83 7d fc 01 cmpl $0x1,-0x4(%rbp)
100000d43: 75 15 jne 100000d5a
<__Z41__static_initialization_and_destruction_0ii+0x29>
100000d45: 81 7d f8 ff ff 00 00 cmpl $0xffff,-0x8(%rbp)
100000d4c: 75 0c jne 100000d5a
<__Z41__static_initialization_and_destruction_0ii+0x29>
100000d4e: 48 8d 3d 8b 03 00 00 lea 0x38b(%rip),%rdi #
1000010e0 <_ret>
100000d55: e8 9c 00 00 00 callq 100000df6 <__ZN3c18C1Ev$stub>
100000d5a: c9 leaveq
100000d5b: c3 retq
0000000100000d5c <__GLOBAL__sub_I_cov.cc>:
100000d5c: 55 push %rbp
100000d5d: 48 89 e5 mov %rsp,%rbp
100000d60: be ff ff 00 00 mov $0xffff,%esi
100000d65: bf 01 00 00 00 mov $0x1,%edi
100000d6a: e8 c2 ff ff ff callq 100000d31
<__Z41__static_initialization_and_destruction_0ii>
100000d6f: 5d pop %rbp
100000d70: c3 retq
0000000100000d71 <__GLOBAL__sub_D_00099_0_cov.cc>:
100000d71: 55 push %rbp
100000d72: 48 89 e5 mov %rsp,%rbp
100000d75: be 01 00 00 00 mov $0x1,%esi
100000d7a: 48 8d 3d 1f 03 00 00 lea 0x31f(%rip),%rdi #
1000010a0 <__ZTI3c18+0x20>
100000d81: e8 88 00 00 00 callq 100000e0e
<___asan_unregister_globals$stub>
100000d86: 5d pop %rbp
100000d87: c3 retq
0000000100000d88 <__GLOBAL__sub_I_00099_1_cov.cc>:
100000d88: 55 push %rbp
100000d89: 48 89 e5 mov %rsp,%rbp
100000d8c: e8 6b 00 00 00 callq 100000dfc <___asan_init$stub>
100000d91: be 01 00 00 00 mov $0x1,%esi
100000d96: 48 8d 3d 03 03 00 00 lea 0x303(%rip),%rdi #
1000010a0 <__ZTI3c18+0x20>
100000d9d: e8 60 00 00 00 callq 100000e02
<___asan_register_globals$stub>
100000da2: 5d pop %rbp
100000da3: c3 retq
More information about the Gcc-bugs
mailing list