[Lldb-commits] [lldb] r341320 - [PseudoTerminal][NFC] Use llvm errno helpers
David Bolvansky via lldb-commits
lldb-commits at lists.llvm.org
Mon Sep 3 07:59:57 PDT 2018
Author: xbolva00
Date: Mon Sep 3 07:59:57 2018
New Revision: 341320
URL: http://llvm.org/viewvc/llvm-project?rev=341320&view=rev
Log:
[PseudoTerminal][NFC] Use llvm errno helpers
Summary:
LLVM provide (str)errno helpers, so convert code to use it.
Also fixes warning:
/home/xbolva00/LLVM/llvm/tools/lldb/source/Host/common/PseudoTerminal.cpp:248:25: warning: ignoring return value of ‘char* strerror_r(int, char*, size_t)’, declared with attribute warn_unused_result [-Wunused-result]
::strerror_r(errno, error_str, error_len);
Reviewers: JDevlieghere
Reviewed By: JDevlieghere
Subscribers: abidh, lldb-commits
Differential Revision: https://reviews.llvm.org/D51591
Modified:
lldb/trunk/source/Host/common/PseudoTerminal.cpp
Modified: lldb/trunk/source/Host/common/PseudoTerminal.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/common/PseudoTerminal.cpp?rev=341320&r1=341319&r2=341320&view=diff
==============================================================================
--- lldb/trunk/source/Host/common/PseudoTerminal.cpp (original)
+++ lldb/trunk/source/Host/common/PseudoTerminal.cpp Mon Sep 3 07:59:57 2018
@@ -10,7 +10,8 @@
#include "lldb/Host/PseudoTerminal.h"
#include "lldb/Host/Config.h"
-#include <errno.h>
+#include "llvm/Support/Errno.h"
+
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -27,6 +28,14 @@ int posix_openpt(int flags);
using namespace lldb_private;
//----------------------------------------------------------------------
+// Write string describing error number
+//----------------------------------------------------------------------
+static void ErrnoToStr(char *error_str, size_t error_len) {
+ std::string strerror = llvm::sys::StrError();
+ ::snprintf(error_str, error_len, "%s", strerror.c_str());
+}
+
+//----------------------------------------------------------------------
// PseudoTerminal constructor
//----------------------------------------------------------------------
PseudoTerminal::PseudoTerminal()
@@ -88,14 +97,14 @@ bool PseudoTerminal::OpenFirstAvailableM
m_master_fd = ::posix_openpt(oflag);
if (m_master_fd < 0) {
if (error_str)
- ::strerror_r(errno, error_str, error_len);
+ ErrnoToStr(error_str, error_len);
return false;
}
// Grant access to the slave pseudo terminal
if (::grantpt(m_master_fd) < 0) {
if (error_str)
- ::strerror_r(errno, error_str, error_len);
+ ErrnoToStr(error_str, error_len);
CloseMasterFileDescriptor();
return false;
}
@@ -103,7 +112,7 @@ bool PseudoTerminal::OpenFirstAvailableM
// Clear the lock flag on the slave pseudo terminal
if (::unlockpt(m_master_fd) < 0) {
if (error_str)
- ::strerror_r(errno, error_str, error_len);
+ ErrnoToStr(error_str, error_len);
CloseMasterFileDescriptor();
return false;
}
@@ -143,7 +152,7 @@ bool PseudoTerminal::OpenSlave(int oflag
if (m_slave_fd < 0) {
if (error_str)
- ::strerror_r(errno, error_str, error_len);
+ ErrnoToStr(error_str, error_len);
return false;
}
@@ -175,7 +184,7 @@ const char *PseudoTerminal::GetSlaveName
const char *slave_name = ::ptsname(m_master_fd);
if (error_str && slave_name == nullptr)
- ::strerror_r(errno, error_str, error_len);
+ ErrnoToStr(error_str, error_len);
return slave_name;
}
@@ -213,7 +222,7 @@ lldb::pid_t PseudoTerminal::Fork(char *e
if (pid < 0) {
// Fork failed
if (error_str)
- ::strerror_r(errno, error_str, error_len);
+ ErrnoToStr(error_str, error_len);
} else if (pid == 0) {
// Child Process
::setsid();
@@ -229,23 +238,23 @@ lldb::pid_t PseudoTerminal::Fork(char *e
// Acquire the controlling terminal
if (::ioctl(m_slave_fd, TIOCSCTTY, (char *)0) < 0) {
if (error_str)
- ::strerror_r(errno, error_str, error_len);
+ ErrnoToStr(error_str, error_len);
}
#endif
// Duplicate all stdio file descriptors to the slave pseudo terminal
if (::dup2(m_slave_fd, STDIN_FILENO) != STDIN_FILENO) {
if (error_str && !error_str[0])
- ::strerror_r(errno, error_str, error_len);
+ ErrnoToStr(error_str, error_len);
}
if (::dup2(m_slave_fd, STDOUT_FILENO) != STDOUT_FILENO) {
if (error_str && !error_str[0])
- ::strerror_r(errno, error_str, error_len);
+ ErrnoToStr(error_str, error_len);
}
if (::dup2(m_slave_fd, STDERR_FILENO) != STDERR_FILENO) {
if (error_str && !error_str[0])
- ::strerror_r(errno, error_str, error_len);
+ ErrnoToStr(error_str, error_len);
}
}
} else {
More information about the lldb-commits
mailing list