Index: third_party/libc++abi/src/abort_message.cpp |
=================================================================== |
--- third_party/libc++abi/src/abort_message.cpp (revision 0) |
+++ third_party/libc++abi/src/abort_message.cpp (revision 0) |
@@ -0,0 +1,50 @@ |
+//===------------------------- abort_message.cpp --------------------------===// |
+// |
+// The LLVM Compiler Infrastructure |
+// |
+// This file is dual licensed under the MIT and the University of Illinois Open |
+// Source Licenses. See LICENSE.TXT for details. |
+// |
+//===----------------------------------------------------------------------===// |
+ |
+#include <stdlib.h> |
+#include <stdio.h> |
+#include <stdarg.h> |
+#include "abort_message.h" |
+ |
+#pragma GCC visibility push(hidden) |
+ |
+#if __APPLE__ |
+# if defined(__has_include) && __has_include(<CrashReporterClient.h>) |
+# define HAVE_CRASHREPORTERCLIENT_H 1 |
+# include <CrashReporterClient.h> |
+# endif |
+#endif |
+ |
+__attribute__((visibility("hidden"), noreturn)) |
+void abort_message(const char* format, ...) |
+{ |
+ // write message to stderr |
+#if __APPLE__ |
+ fprintf(stderr, "libc++abi.dylib: "); |
+#endif |
+ va_list list; |
+ va_start(list, format); |
+ vfprintf(stderr, format, list); |
+ va_end(list); |
+ fprintf(stderr, "\n"); |
+ |
+#if __APPLE__ && HAVE_CRASHREPORTERCLIENT_H |
+ // record message in crash report |
+ char* buffer; |
+ va_list list2; |
+ va_start(list2, format); |
+ vasprintf(&buffer, format, list2); |
+ va_end(list2); |
+ CRSetCrashLogMessage(buffer); |
+#endif |
+ |
+ abort(); |
+} |
+ |
+#pragma GCC visibility pop |
Property changes on: third_party/libc++abi/src/abort_message.cpp |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |