[Support] Reapply cleanup r270643

llvm-svn: 270674
This commit is contained in:
Gerolf Hoflehner 2016-05-25 06:23:45 +00:00
parent 124bdb7497
commit 613e704190
1 changed files with 0 additions and 39 deletions

View File

@ -490,42 +490,3 @@ void llvm::sys::PrintStackTraceOnErrorSignal(bool DisableCrashReporting) {
}
#endif
}
/***/
// On Darwin, raise sends a signal to the main thread instead of the current
// thread. This has the unfortunate effect that assert() and abort() will end up
// bypassing our crash recovery attempts. We work around this for anything in
// the same linkage unit by just defining our own versions of the assert handler
// and abort.
#if defined(__APPLE__) && defined(ENABLE_CRASH_OVERRIDES)
#include <signal.h>
#include <pthread.h>
int raise(int sig) {
return pthread_kill(pthread_self(), sig);
}
void __assert_rtn(const char *func,
const char *file,
int line,
const char *expr) {
if (func)
fprintf(stderr, "Assertion failed: (%s), function %s, file %s, line %d.\n",
expr, func, file, line);
else
fprintf(stderr, "Assertion failed: (%s), file %s, line %d.\n",
expr, file, line);
abort();
}
void abort() {
raise(SIGABRT);
usleep(1000);
__builtin_trap();
}
#endif