[clang] Fixed issue #128882: don't warn if 1st argument to 'getcwd' is NULL (PR #135720)

Balázs Kéri via cfe-commits cfe-commits at lists.llvm.org
Wed May 7 01:33:56 PDT 2025


================
@@ -105,9 +105,6 @@ void errno_getcwd(char *Buf, size_t Sz) {
     clang_analyzer_eval(errno != 0);   // expected-warning{{TRUE}}
     clang_analyzer_eval(Path == NULL); // expected-warning{{TRUE}}
     if (errno) {}                      // no warning
-  } else if (Path == NULL) {
-    clang_analyzer_eval(errno != 0);   // expected-warning{{TRUE}}
-    if (errno) {}                      // no warning
----------------
balazske wrote:

I checked the issue 128882, it references to the macOS man page for `getcwd` where a NULL `buf` argument is allowed. This is different from the original POSIX documentation where "the behavior of getcwd() is unspecified" if `buf` is NULL. This is why the condition is there. But "unspecified" does not mean invalid, so it may be correct to drop this requirement. But we must check how this affects the `BufferSizeConstraint`.

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


More information about the cfe-commits mailing list