[flang] [clang] [llvm] [clang-tools-extra] [flang ]GETLOG runtime and extension implementation: get login username (PR #70917)

via cfe-commits cfe-commits at lists.llvm.org
Wed Nov 15 01:26:38 PST 2023


================
@@ -37,5 +75,19 @@ void FORTRAN_PROCEDURE_NAME(getarg)(
   (void)RTNAME(GetCommandArgument)(
       n, &value, nullptr, nullptr, __FILE__, __LINE__);
 }
+
+void FORTRAN_PROCEDURE_NAME(getlog)(std::int8_t *arg, std::int64_t length) {
+  std::array<char, LOGIN_NAME_MAX + 1> str;
+  int error = getlogin_r(str.data(), str.size());
+  assert(error == 0 && "getlogin_r returned an error");
----------------
jeanPerier wrote:

Prefer emitting a Fortran fatal runtime error here.

Can be done as:
```
Terminator terminator{__FILE__, __LINE__};
if (error != 0)
  terminator.Crash("getlogin_r returned error %d", error);
```
or simply
```
Terminator terminator{__FILE__, __LINE__};
RUNTIME_CHECK(terminator, error == 0);
```

https://github.com/llvm/llvm-project/pull/70917


More information about the cfe-commits mailing list