Duncan Sands wrote:> I would just use the C personality function, __gcc_personality_v0, if > I were you. It should know where to jump to because the code generators > record the invoke unwind target in the dwarf exception handling info in > the object file. > >I see. OK, I will try that. I was hoping to be able to test the exception type in the personality function - the language I am working on has its own type system, unrelated to C or C++, so I want to minimize reliance on C++ exception handling libraries. In this case, I guess I can do the exception type checking in the landing pad instead of the personality function. -- Talin
Talin wrote:> I see. OK, I will try that. > > I was hoping to be able to test the exception type in the personality > function - the language I am working on has its own type system, > unrelated to C or C++, so I want to minimize reliance on C++ exception > handling libraries. In this case, I guess I can do the exception type > checking in the landing pad instead of the personality function. >Yes, that's what VMKit used to do, until it realized dwarf exceptions should never be used for something like Java :) Nicolas> -- Talin > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >
On Tue, May 19, 2009 at 9:45 AM, Nicolas Geoffray <nicolas.geoffray at lip6.fr> wrote:> Talin wrote: >> I see. OK, I will try that. >> >> I was hoping to be able to test the exception type in the personality >> function - the language I am working on has its own type system, >> unrelated to C or C++, so I want to minimize reliance on C++ exception >> handling libraries. In this case, I guess I can do the exception type >> checking in the landing pad instead of the personality function. >> > > Yes, that's what VMKit used to do, until it realized dwarf exceptions > should never be used for something like Java :)Can you elaborate on that last point a bit? What problems did you run into? -- Talin