Dale,> Works for me on x86-64 Darwin, fwiw.That looks pretty strange. Ok, it can work for small testcases, but will surely fail when you try to use for something more real. Currently it at least lacks information about frame moves. So, every invoke, which needs to restore call-clobbered registers during unwinding will be broken. Does Shootout-C++/except work for you? And stuff from llvm testsuite like omnetpp and xalan ? Also, Darwin is different than Linux, because Darwin's unwinding runtime is native one, not built by llvm-gcc. -- WBR, Anton Korobeynikov
On Feb 9, 2008, at 11:20 AM, Anton Korobeynikov wrote:> Dale, > >> Works for me on x86-64 Darwin, fwiw. > That looks pretty strange. Ok, it can work for small testcases, but > will > surely fail when you try to use for something more real. Currently > it at > least lacks information about frame moves. So, every invoke, which > needs > to restore call-clobbered registers during unwinding will be broken. > > Does Shootout-C++/except work for you? And stuff from llvm testsuite > like omnetpp and xalan ?Everything in the llvm testsuite works.> Also, Darwin is different than Linux, because Darwin's unwinding > runtime > is native one, not built by llvm-gcc.I didn't look too hard, but it looks like the x86-64 info is only slightly modified from the x86-32 info on darwin (in gcc). A few fields were extended to 64 bits but it was not far off. So what was there mostly just worked. You may be right that there are problems that haven't shown up yet.
On Feb 9, 2008, at 11:48 AM, Dale Johannesen wrote:> > On Feb 9, 2008, at 11:20 AM, Anton Korobeynikov wrote: > >> Dale, >> >>> Works for me on x86-64 Darwin, fwiw. >> That looks pretty strange. Ok, it can work for small testcases, but >> will >> surely fail when you try to use for something more real. Currently >> it at >> least lacks information about frame moves. So, every invoke, which >> needs >> to restore call-clobbered registers during unwinding will be broken. >> >> Does Shootout-C++/except work for you? And stuff from llvm testsuite >> like omnetpp and xalan ? > > Everything in the llvm testsuite works.And the gcc testsuite - well, there are a couple of failures, but I looked at them and am convinced they are not problems with the EH mechanism.>> Also, Darwin is different than Linux, because Darwin's unwinding >> runtime >> is native one, not built by llvm-gcc. > > I didn't look too hard, but it looks like the x86-64 info is only > slightly modified from the x86-32 info on darwin (in gcc). A few > fields were extended to 64 bits but it was not far off. So what was > there mostly just worked. You may be right that there are problems > that haven't shown up yet. >