From bdbecac051601e1554aa3802f7ecff5252347716 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 15 Sep 2003 16:47:12 +0000 Subject: [PATCH] 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 --- lib/Target/CBackend/CBackend.cpp | 6 ++++-- lib/Target/CBackend/Writer.cpp | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/Target/CBackend/CBackend.cpp b/lib/Target/CBackend/CBackend.cpp index 6d1fd14dae9..65919e8c48d 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; diff --git a/lib/Target/CBackend/Writer.cpp b/lib/Target/CBackend/Writer.cpp index 6d1fd14dae9..65919e8c48d 100644 --- a/lib/Target/CBackend/Writer.cpp +++ b/lib/Target/CBackend/Writer.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; -- 2.34.1