search for: cxa_throw

Displaying 6 results from an estimated 6 matches for "cxa_throw".

2008 Sep 26
1
[LLVMdev] Unwinds Gone Wild
...r execution just falls through into the following function without unwinding its own stack frame. In the above example, this causes it to fall into main and push another stack frame for main, over and over again until it runs out of stack space and segfaults. I can't find any information about cxa_throw at all, not even a type signature. If I could, could I just call it as if it were unwind, and it would be caught by invoke? The function cxa_throw appears to be in libstdc++ in GCC - I can find it in the object file, but not the source code documentation. Calling it instead of the LLVM "unwin...
2008 Sep 26
0
[LLVMdev] Unwinds Gone Wild
> If you look at the generated x86 machine code, it looks like unwind is > compiled into nothing at all: Yes, unwind is currently not supported by the code generators. This is bad, but not that easy to fix (hopefully one day...). > I can't find any information about cxa_throw at all, not even a type > signature. If I could, could I just call it as if it were unwind, and it > would be caught by invoke? cxa_throw comes from the gcc C++ runtime. In order to see how to throw and catch things correctly using it, compile some C++ examples down to bitcode using llvm-g+...
2008 Jul 31
4
[LLVMdev] Unwinds Gone Wild
Can anyone tell me if invoke/unwind is stable in 2.3? I'm seeing some really weird stuff -- unwinds are ending up in seemingly arbitrary places... definitely not inside the caller's unwind block My target is x86. As a simple test, I tried to compile the following code and I got a segmentation fault. It looks good to me. Can someone help me out or is this a bug? define i32 @foo() {
2008 Jul 31
2
[LLVMdev] Unwinds Gone Wild
...definitely not inside the caller's unwind block My target is x86. > > codegen doesn't know how to handle "unwind" on any target. You need > to call the libgcc unwinding routines directly (or indirectly by > pretending to be C++ or some other language, and calling eg cxa_throw). I'm not familiar with the libgcc unwinding routines. What do these look like and where might I read more about them? Or maybe someone can provide an example? For instance, how could I do it for my little dummy program? > > > > As a simple test, I tried to compile the follow...
2008 Sep 27
4
[LLVMdev] Unwinds Gone Wild
Duncan Sands wrote: >> I can't find any information about cxa_throw at all, not even a type >> signature. If I could, could I just call it as if it were unwind, and it >> would be caught by invoke? >> > > cxa_throw comes from the gcc C++ runtime. In order to see how to throw > and catch things correctly using it, compile some C++ ex...
2008 Jul 31
0
[LLVMdev] Unwinds Gone Wild
...rary places... > definitely not inside the caller's unwind block My target is x86. codegen doesn't know how to handle "unwind" on any target. You need to call the libgcc unwinding routines directly (or indirectly by pretending to be C++ or some other language, and calling eg cxa_throw). > As a simple test, I tried to compile the following code and I got a > segmentation fault. It looks good to me. Can someone help me out or is > this a bug? It's a bug that it's not supported. Supporting it is not so easy to do, which is why it's still unsupported... C...