diff --git a/flang-rt/lib/runtime/external-unit.cpp b/flang-rt/lib/runtime/external-unit.cpp index 63a93c12eec57..6a609a22d093a 100644 --- a/flang-rt/lib/runtime/external-unit.cpp +++ b/flang-rt/lib/runtime/external-unit.cpp @@ -201,9 +201,9 @@ bool ExternalFileUnit::OpenAnonymousUnit(common::optional status, // I/O to an unconnected unit reads/creates a local file, e.g. fort.7 std::size_t pathMaxLen{32}; auto path{SizedNew{handler}(pathMaxLen)}; - std::snprintf(path.get(), pathMaxLen, "fort.%d", unitNumber_); + int len = std::snprintf(path.get(), pathMaxLen, "fort.%d", unitNumber_); OpenUnit(status, action, position, std::move(path), - runtime::strlen(path.get()), convert, handler); + len >= 0 ? static_cast(len) : 0, convert, handler); return IsConnected(); }