[llvm] [InferAttrs] Mark errnomem-setting libcalls as such (PR #124742)

Antonio Frighetto via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 24 09:17:59 PST 2025


================
@@ -863,18 +934,23 @@ bool llvm::inferNonMandatoryLibFuncAttrs(Function &F,
     Changed |= setRetAndArgsNoUndef(F);
     Changed |= setDoesNotThrow(F);
     Changed |= setDoesNotCapture(F, 0);
+    Changed |= setOnlyAccessesInaccessibleOrArgOrErrnoMem(F, MR::Ref);
     break;
   case LibFunc_unlink:
     Changed |= setRetAndArgsNoUndef(F);
     Changed |= setDoesNotThrow(F);
     Changed |= setDoesNotCapture(F, 0);
     Changed |= setOnlyReadsMemory(F, 0);
+    Changed |=
+        setOnlyAccessesInaccessibleOrArgOrErrnoMem(F, MR::ModRef, MR::Ref);
     break;
   case LibFunc_unsetenv:
     Changed |= setRetAndArgsNoUndef(F);
     Changed |= setDoesNotThrow(F);
     Changed |= setDoesNotCapture(F, 0);
     Changed |= setOnlyReadsMemory(F, 0);
+    Changed |=
+        setOnlyAccessesInaccessibleOrArgOrErrnoMem(F, MR::ModRef, MR::Ref);
----------------
antoniofrighetto wrote:

Right, good point.

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


More information about the llvm-commits mailing list