Skip to content

Commit 4d3f78f

Browse files
author
git apple-llvm automerger
committed
Merge commit '731b29560d02' from llvm.org/main into next
2 parents 14d102e + 731b295 commit 4d3f78f

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

flang/runtime/extensions.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,14 @@ void FORTRAN_PROCEDURE_NAME(getarg)(
100100
// CALL GETLOG(USRNAME)
101101
void FORTRAN_PROCEDURE_NAME(getlog)(std::byte *arg, std::int64_t length) {
102102
#if _REENTRANT || _POSIX_C_SOURCE >= 199506L
103-
const int nameMaxLen{LOGIN_NAME_MAX + 1};
103+
int nameMaxLen;
104+
#ifdef LOGIN_NAME_MAX
105+
nameMaxLen = LOGIN_NAME_MAX + 1;
106+
#else
107+
nameMaxLen = sysconf(_SC_LOGIN_NAME_MAX) + 1;
108+
if (nameMaxLen == -1)
109+
nameMaxLen = _POSIX_LOGIN_NAME_MAX + 1;
110+
#endif
104111
char str[nameMaxLen];
105112

106113
int error{getlogin_r(str, nameMaxLen)};

flang/unittests/Runtime/CommandTest.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -691,7 +691,14 @@ TEST_F(EnvironmentVariables, GetlogGetName) {
691691
#if _REENTRANT || _POSIX_C_SOURCE >= 199506L
692692
TEST_F(EnvironmentVariables, GetlogPadSpace) {
693693
// guarantee 1 char longer than max, last char should be pad space
694-
const int charLen{LOGIN_NAME_MAX + 2};
694+
int charLen;
695+
#ifdef LOGIN_NAME_MAX
696+
charLen = LOGIN_NAME_MAX + 2;
697+
#else
698+
charLen = sysconf(_SC_LOGIN_NAME_MAX) + 2;
699+
if (charLen == -1)
700+
charLen = _POSIX_LOGIN_NAME_MAX + 2;
701+
#endif
695702
char input[charLen];
696703

697704
FORTRAN_PROCEDURE_NAME(getlog)

0 commit comments

Comments
 (0)