diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_file.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_file.cpp --- a/compiler-rt/lib/sanitizer_common/sanitizer_file.cpp +++ b/compiler-rt/lib/sanitizer_common/sanitizer_file.cpp @@ -58,11 +58,15 @@ } else { internal_snprintf(full_path, kMaxPathLength, "%s.%zu", path_prefix, pid); } - fd = OpenFile(full_path, WrOnly); + error_t err; + fd = OpenFile(full_path, WrOnly, &err); if (fd == kInvalidFd) { const char *ErrorMsgPrefix = "ERROR: Can't open file: "; WriteToFile(kStderrFd, ErrorMsgPrefix, internal_strlen(ErrorMsgPrefix)); WriteToFile(kStderrFd, full_path, internal_strlen(full_path)); + char errmsg[100]; + internal_snprintf(errmsg, sizeof(errmsg), " (reason: %d)", err); + WriteToFile(kStderrFd, errmsg, internal_strlen(errmsg)); Die(); } fd_pid = pid; diff --git a/compiler-rt/test/memprof/TestCases/log_path_test.cpp b/compiler-rt/test/memprof/TestCases/log_path_test.cpp --- a/compiler-rt/test/memprof/TestCases/log_path_test.cpp +++ b/compiler-rt/test/memprof/TestCases/log_path_test.cpp @@ -19,11 +19,10 @@ // RUN: not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-LONG --dump-input=always // Specifying the log name via the __memprof_profile_filename variable. -// TODO: Temporarily disabled due to llvm-avr-linux bot failure -// %clangxx_memprof %s -o %t -DPROFILE_NAME_VAR="%t.log2" -// rm -f %t.log2.* -// %run %t -// FileCheck %s --check-prefix=CHECK-GOOD --dump-input=always < %t.log2.* +// RUN: %clangxx_memprof %s -o %t -DPROFILE_NAME_VAR="%t.log2" +// RUN: rm -f %t.log2.* +// RUN: %run %t +// RUN: FileCheck %s --check-prefix=CHECK-GOOD --dump-input=always < %t.log2.* #ifdef PROFILE_NAME_VAR #define xstr(s) str(s)