aboutsummaryrefslogtreecommitdiff
path: root/rcc/lib/Support/Errno.cc
diff options
context:
space:
mode:
authorRichard Qin <richard.qin.x@gmail.com>2026-11-01 02:12:34 +0800
committerRichard Qin <richard.qin.x@gmail.com>2026-11-01 02:12:34 +0800
commit02b615c8704aeda9a94cf5457c9c78de847c911a (patch)
tree3257dd23e643ae732cb0abf14d62ab70b64893be /rcc/lib/Support/Errno.cc
parent2850abdb23a2ba4fde6268ea4191f4d062b9a01f (diff)
downloadrcc-project-02b615c8704aeda9a94cf5457c9c78de847c911a.tar.gz
rcc-project-02b615c8704aeda9a94cf5457c9c78de847c911a.tar.xz
Move support code into CoreLibHEADmaster
Diffstat (limited to 'rcc/lib/Support/Errno.cc')
-rw-r--r--rcc/lib/Support/Errno.cc79
1 files changed, 0 insertions, 79 deletions
diff --git a/rcc/lib/Support/Errno.cc b/rcc/lib/Support/Errno.cc
deleted file mode 100644
index f0161a6..0000000
--- a/rcc/lib/Support/Errno.cc
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- RCC-Project
-
- Copyright (C) 2026 Richard Qin
-
- This file is part of RCC-Project.
-
- RCC-Project is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your option) any
- later version.
-
- RCC-Project is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along with
- RCC-Project; see the file COPYING. If not see
- <http://www.gnu.org/licenses/>.
-*/
-
-// This implementation is based on llvm/lib/Support/Errno.cpp.
-
-#include "rcc/Support/Errno.h"
-#include "rcc/Config/config.h"
-
-#include <cstring>
-#include <errno.h>
-
-namespace rcc
-{
-namespace sys
-{
-
-std::string
-StrError ()
-{
- return StrError (errno);
-}
-
-std::string
-StrError (int errnum)
-{
- std::string str;
- if (errnum == 0)
- {
- return str;
- }
-
-#if defined(HAVE_STRERROR_R) || HAVE_DECL_STRERROR_S
- const int maxErrStrLen = 2000;
- char buffer[maxErrStrLen];
- buffer[0] = '\0';
-#endif
-
-#ifdef HAVE_STRERROR_R
- // strerror_r is thread-safe.
-#if defined(__GLIBC__) && defined(_GNU_SOURCE)
- // glibc defines its own incompatible version of strerror_r which may not
- // use the buffer supplied.
- str = strerror_r (errnum, buffer, maxErrStrLen - 1);
-#else
- strerror_r (errnum, buffer, maxErrStrLen - 1);
- str = buffer;
-#endif
-#elif HAVE_DECL_STRERROR_S
- // Windows Secure API.
- strerror_s (buffer, maxErrStrLen - 1, errnum);
- str = buffer;
-#else
- // Copy the thread-unsafe result of strerror into the buffer as fast as
- // possible to minimize the impact of collisions in multiple threads.
- str = strerror (errnum);
-#endif
- return str;
-}
-
-} // namespace sys
-} // namespace rcc