diff options
| author | Stephen Hines <srhines@google.com> | 2012-03-05 14:40:54 -0800 |
|---|---|---|
| committer | Stephen Hines <srhines@google.com> | 2012-03-05 14:40:54 -0800 |
| commit | c02a5c5e8d9c1fd2a20ad4aed40f328564e95b40 (patch) | |
| tree | 9a892d465bc8a229322b6c296c346250a95ecd6c /lib/Support/Unix | |
| parent | 2987cbcdaef9e14f635b6f9ac32c58ff26a2fc0f (diff) | |
| parent | c3384c93c0e4c50da4ad093f08997507f9281c75 (diff) | |
| download | external_llvm-c02a5c5e8d9c1fd2a20ad4aed40f328564e95b40.zip external_llvm-c02a5c5e8d9c1fd2a20ad4aed40f328564e95b40.tar.gz external_llvm-c02a5c5e8d9c1fd2a20ad4aed40f328564e95b40.tar.bz2 | |
Merge branch 'upstream' into merge-20120305
Conflicts:
lib/Support/Atomic.cpp
Change-Id: I563b3bc2a82942ccbae5bed42e53b9149a8bf3a0
Diffstat (limited to 'lib/Support/Unix')
| -rw-r--r-- | lib/Support/Unix/PathV2.inc | 34 | ||||
| -rw-r--r-- | lib/Support/Unix/Process.inc | 4 | ||||
| -rw-r--r-- | lib/Support/Unix/Signals.inc | 20 |
3 files changed, 37 insertions, 21 deletions
diff --git a/lib/Support/Unix/PathV2.inc b/lib/Support/Unix/PathV2.inc index aebb4ab..7d79947 100644 --- a/lib/Support/Unix/PathV2.inc +++ b/lib/Support/Unix/PathV2.inc @@ -89,7 +89,7 @@ namespace { result.clear(); StringRef d(dir); result.append(d.begin(), d.end()); - return success; + return error_code::success(); } } @@ -112,7 +112,7 @@ error_code current_path(SmallVectorImpl<char> &result) { } result.set_size(strlen(result.data())); - return success; + return error_code::success(); } error_code copy_file(const Twine &from, const Twine &to, copy_option copt) { @@ -171,7 +171,7 @@ error_code copy_file(const Twine &from, const Twine &to, copy_option copt) { if (sz_read < 0) return error_code(errno, system_category()); - return success; + return error_code::success(); } error_code create_directory(const Twine &path, bool &existed) { @@ -185,7 +185,7 @@ error_code create_directory(const Twine &path, bool &existed) { } else existed = false; - return success; + return error_code::success(); } error_code create_hard_link(const Twine &to, const Twine &from) { @@ -198,7 +198,7 @@ error_code create_hard_link(const Twine &to, const Twine &from) { if (::link(t.begin(), f.begin()) == -1) return error_code(errno, system_category()); - return success; + return error_code::success(); } error_code create_symlink(const Twine &to, const Twine &from) { @@ -211,7 +211,7 @@ error_code create_symlink(const Twine &to, const Twine &from) { if (::symlink(t.begin(), f.begin()) == -1) return error_code(errno, system_category()); - return success; + return error_code::success(); } error_code remove(const Twine &path, bool &existed) { @@ -225,7 +225,7 @@ error_code remove(const Twine &path, bool &existed) { } else existed = true; - return success; + return error_code::success(); } error_code rename(const Twine &from, const Twine &to) { @@ -247,7 +247,7 @@ error_code rename(const Twine &from, const Twine &to) { return error_code(errno, system_category()); } - return success; + return error_code::success(); } error_code resize_file(const Twine &path, uint64_t size) { @@ -257,7 +257,7 @@ error_code resize_file(const Twine &path, uint64_t size) { if (::truncate(p.begin(), size) == -1) return error_code(errno, system_category()); - return success; + return error_code::success(); } error_code exists(const Twine &path, bool &result) { @@ -272,7 +272,7 @@ error_code exists(const Twine &path, bool &result) { } else result = true; - return success; + return error_code::success(); } bool equivalent(file_status A, file_status B) { @@ -286,7 +286,7 @@ error_code equivalent(const Twine &A, const Twine &B, bool &result) { if (error_code ec = status(A, fsA)) return ec; if (error_code ec = status(B, fsB)) return ec; result = equivalent(fsA, fsB); - return success; + return error_code::success(); } error_code file_size(const Twine &path, uint64_t &result) { @@ -300,7 +300,7 @@ error_code file_size(const Twine &path, uint64_t &result) { return make_error_code(errc::operation_not_permitted); result = status.st_size; - return success; + return error_code::success(); } error_code status(const Twine &path, file_status &result) { @@ -335,7 +335,7 @@ error_code status(const Twine &path, file_status &result) { result.st_dev = status.st_dev; result.st_ino = status.st_ino; - return success; + return error_code::success(); } error_code unique_file(const Twine &model, int &result_fd, @@ -430,7 +430,7 @@ rety_open_create: result_path.append(d.begin(), d.end()); result_fd = RandomFD; - return success; + return error_code::success(); } error_code detail::directory_iterator_construct(detail::DirIterState &it, @@ -452,7 +452,7 @@ error_code detail::directory_iterator_destruct(detail::DirIterState &it) { ::closedir(reinterpret_cast<DIR *>(it.IterationHandle)); it.IterationHandle = 0; it.CurrentEntry = directory_entry(); - return success; + return error_code::success(); } error_code detail::directory_iterator_increment(detail::DirIterState &it) { @@ -469,7 +469,7 @@ error_code detail::directory_iterator_increment(detail::DirIterState &it) { } else return directory_iterator_destruct(it); - return success; + return error_code::success(); } error_code get_magic(const Twine &path, uint32_t len, @@ -500,7 +500,7 @@ error_code get_magic(const Twine &path, uint32_t len, } std::fclose(file); result.set_size(len); - return success; + return error_code::success(); } } // end namespace fs diff --git a/lib/Support/Unix/Process.inc b/lib/Support/Unix/Process.inc index da440fd..5cdb11c 100644 --- a/lib/Support/Unix/Process.inc +++ b/lib/Support/Unix/Process.inc @@ -293,7 +293,3 @@ const char *Process::OutputBold(bool bg) { const char *Process::ResetColor() { return "\033[0m"; } - -void Process::SetWorkingDirectory(std::string Path) { - ::chdir(Path.c_str()); -} diff --git a/lib/Support/Unix/Signals.inc b/lib/Support/Unix/Signals.inc index e286869..75b91ea 100644 --- a/lib/Support/Unix/Signals.inc +++ b/lib/Support/Unix/Signals.inc @@ -30,6 +30,10 @@ #include <dlfcn.h> #include <cxxabi.h> #endif +#if HAVE_MACH_MACH_H +#include <mach/mach.h> +#endif + using namespace llvm; static RETSIGTYPE SignalHandler(int Sig); // defined below. @@ -261,6 +265,22 @@ static void PrintStackTrace(void *) { /// SIGSEGV) is delivered to the process, print a stack trace and then exit. void llvm::sys::PrintStackTraceOnErrorSignal() { AddSignalHandler(PrintStackTrace, 0); + +#if defined(__APPLE__) + // Environment variable to disable any kind of crash dialog. + if (getenv("LLVM_DISABLE_CRASH_REPORT")) { + mach_port_t self = mach_task_self(); + + exception_mask_t mask = EXC_MASK_CRASH; + + kern_return_t ret = task_set_exception_ports(self, + mask, + NULL, + EXCEPTION_STATE_IDENTITY | MACH_EXCEPTION_CODES, + NULL); + (void)ret; + } +#endif } |
