[LLVMbugs] [Bug 12550] New: Windows 64 bits (Visual Studio): "foreign" C++ exceptions unwinding through LLVM cause a crash

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Fri Apr 13 08:54:36 PDT 2012


http://llvm.org/bugs/show_bug.cgi?id=12550

             Bug #: 12550
           Summary: Windows 64 bits (Visual Studio): "foreign" C++
                    exceptions unwinding through LLVM cause a crash
           Product: libraries
           Version: 3.0
          Platform: PC
        OS/Version: Windows NT
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Backend: X86
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: jerome_123 at hotmail.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified


Created attachment 8385
  --> http://llvm.org/bugs/attachment.cgi?id=8385
Repro program

We are currently porting our application to Windows 64 bits (amd64), and we are
getting regressions from 32 bits relatively to LLVM 3.0's ability to get
traversed by "foreign" Visual Studio C++ exceptions. That is, there is a crash
when C++ exceptions which are thrown from Visual Studio code, are unwinding
through LLVM code before being eventually catch by other Visual Studio code.

Note: I am not sure if this is specific to Visual Studio.

I was able to repro the issue simply by modifying the Fibonacci example to call
an external C++ function which throws an exception, much like in
ExceptionsDemo.cpp: works on 32 bits but not on 64 bits Visual Studio. The
crash happens within Windows' _cxxThrowException routine.

Attached is the file containing the "repro" executable (to be compiled with the
same settings as the Fibonacci example). The program does a recursive call of
depth "N", with "N" being passed as an arg (like in the Fibonacci example).
Here it crashes even with N=0, on 64 bits.

-- 
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