On Wed, Dec 14, 2011 at 8:52 PM, Argyrios Kyrtzidis <[email protected]> wrote: > Author: akirtzidis > Date: Wed Dec 14 22:52:41 2011 > New Revision: 146641 > > URL: http://llvm.org/viewvc/llvm-project?rev=146641&view=rev > Log: > [libclang] Install a fatal error handler that will call abort() instead of > exit() > when there is a report_fatal_error() call. > > rdar://10507984 > > Modified: > cfe/trunk/tools/libclang/CIndex.cpp > > Modified: cfe/trunk/tools/libclang/CIndex.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/CIndex.cpp?rev=146641&r1=146640&r2=146641&view=diff > ============================================================================== > --- cfe/trunk/tools/libclang/CIndex.cpp (original) > +++ cfe/trunk/tools/libclang/CIndex.cpp Wed Dec 14 22:52:41 2011 > @@ -2336,6 +2336,17 @@ > static llvm::sys::Mutex EnableMultithreadingMutex; > static bool EnabledMultithreading; > > +static void fatal_error_handler(void *user_data, const std::string& reason) { > + llvm::SmallString<64> Buffer; > + llvm::raw_svector_ostream OS(Buffer); > + OS << "LIBCLANG FATAL ERROR: " << reason << "\n"; > + StringRef MessageStr = OS.str(); > + // Write the result out to stderr avoiding errs() because raw_ostreams can > + // call report_fatal_error. > + ::write(2, MessageStr.data(), MessageStr.size());
There's at least one buildbot complaining it can't find ::write. http://lab.llvm.org:8011/builders/clang-x86_64-darwin11-self-mingw32/builds/84/steps/compile/logs/stdio etc. -Eli _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
