[llvm-commits] CVS: llvm/Makefile.rules
Chris Lattner
clattner at apple.com
Fri Aug 18 10:04:56 PDT 2006
On Aug 18, 2006, at 9:55 AM, Reid Spencer wrote:
> Hmm .. didn't think of that, but it passed all the tests. All the
> tools
> still have top level exception handlers so its not like we'd
> generate an
> unexpected_exception error. Some memory cleanup could be missed,
> but the
> process is going to exit anyway. Temporary files that need to be
> cleaned
> up are generally done in the tool's code, so that should be okay. What
> else could go wrong?
Consider:
"main" has a catch block, which prints an error message and exits.
main calls foo.
"foo" is compiled without exception info, foo calls some llvm::sys
function 'X' that can throw.
"X" throws an exception on some error.
We'd expect the exception to end up in main, an error printed, then
the process exited. However, because "foo" has no unwind info, the
unwinder will abort the process when it gets to the X frame.
I think the simplest thing to do is to eliminate throws from leaf
code like libsystem etc. Tools like bugpoint can continue to use EH
for as long as we think is reasonable, but the libraries that are
called into by other code should be EH free.
-Chris
More information about the llvm-commits
mailing list