diff options
author | Chris Lattner <sabre@nondot.org> | 2003-09-15 16:47:12 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2003-09-15 16:47:12 +0000 |
commit | bdbecac051601e1554aa3802f7ecff5252347716 (patch) | |
tree | 2f4d8cc98bfb803bc9d9710e032da671c83ee6d0 /lib/Target/CBackend/CBackend.cpp | |
parent | c72b249e9cb2f6c89fe3008bb8d1f49468bf5657 (diff) |
Fix problems with programs that prototype printf to something unusual
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8538 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/CBackend/CBackend.cpp')
-rw-r--r-- | lib/Target/CBackend/CBackend.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/Target/CBackend/CBackend.cpp b/lib/Target/CBackend/CBackend.cpp index 6d1fd14dae..65919e8c48 100644 --- a/lib/Target/CBackend/CBackend.cpp +++ b/lib/Target/CBackend/CBackend.cpp @@ -987,8 +987,10 @@ void CWriter::visitUnwindInst(UnwindInst &I) { // instruction is found. In this context, we code generated the invoke // instruction to add an entry to the top of the jmpbuf_list. Thus, here we // just have to longjmp to the specified handler. - Out << " if (__llvm_jmpbuf_list == 0) { /* llvm.unwind */\n" - << " printf(\"throw found with no handler!\\n\"); abort();\n" + Out << " if (__llvm_jmpbuf_list == 0) { /* unwind */\n" + << " extern write();\n" + << " ((void (*)(int, void*, unsigned))write)(2,\n" + << " \"throw found with no handler!\\n\", 31); abort();\n" << " }\n" << " longjmp(__llvm_jmpbuf_list->buf, 1);\n"; emittedInvoke = true; |