[LLVMbugs] [Bug 12419] New: destructor of scoped object not called when ARM division is tail call optimized
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Fri Mar 30 06:45:37 PDT 2012
http://llvm.org/bugs/show_bug.cgi?id=12419
Bug #: 12419
Summary: destructor of scoped object not called when ARM
division is tail call optimized
Product: clang
Version: unspecified
Platform: Macintosh
OS/Version: MacOS X
Status: NEW
Severity: normal
Priority: P
Component: -New Bugs
AssignedTo: unassignedclangbugs at nondot.org
ReportedBy: bohrarper at spotify.com
CC: llvmbugs at cs.uiuc.edu
Classification: Unclassified
Created attachment 8297
--> http://llvm.org/bugs/attachment.cgi?id=8297
Code and disassembly showing bug
int cnt = 0;
class MutexLock {
public:
explicit MutexLock() {
++cnt;
}
~MutexLock() {
--cnt;
}
};
int a = 100;
int test1() {
MutexLock lock;
return 1000 / a;
}
In test1, the destructor for MutexLock is not executed.
(gdb) disassemble test1
Dump of assembler code for function _Z5test1v:
0x00002e40 <_Z5test1v+0>: push {r7, lr}
0x00002e44 <_Z5test1v+4>: mov r7, sp
0x00002e48 <_Z5test1v+8>: sub sp, sp, #8 ; 0x8
0x00002e4c <_Z5test1v+12>: bic sp, sp, #7 ; 0x7
0x00002e50 <_Z5test1v+16>: mov r0, sp
0x00002e54 <_Z5test1v+20>: bl 0x2fe8 <dyld_stub__ZN9MutexLockC1Ev>
0x00002e58 <_Z5test1v+24>: ldr r0, [pc, #16] ; 0x2e70 <_Z5test1v+48>
0x00002e5c <_Z5test1v+28>: ldr r1, [pc, r0]
0x00002e60 <_Z5test1v+32>: mov r0, #1000 ; 0x3e8
0x00002e64 <_Z5test1v+36>: mov sp, r7
0x00002e68 <_Z5test1v+40>: pop {r7, lr}
0x00002e6c <_Z5test1v+44>: b 0x2ff8 <dyld_stub___divsi3>
0x00002e70 <_Z5test1v+48>: ldrdeq r0, [r0], -r8
End of assembler dump.
Compiled with:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
--version
Apple clang version 3.1 (tags/Apple/clang-318.0.54) (based on LLVM 3.1svn)
Target: x86_64-apple-darwin11.3.0
Thread model: posix
Built like this:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
-arch armv6 -O1 -isysroot
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk
bug.cpp -o bug
See attachment for complete code and disassembly.
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the llvm-bugs
mailing list