================
@@ -970,6 +971,19 @@ ModRefInfo BasicAAResult::getModRefInfo(const CallBase
*Call,
}
ModRefInfo Result = ArgMR | OtherMR;
+
+ // Refine writes to errno memory. We can safely exclude the errno location if
+ // the given memory location is an alloca, the size of the memory access is
+ // larger than `sizeof(int)` or if TBAA proves it does not alias errno.
+ if ((ErrnoMR | OtherMR) != OtherMR) {
+ bool IsLocSizeUnknown = Loc.Size == MemoryLocation::UnknownSize;
----------------
nikic wrote:
Should check `!Loc.Size.hasValue()`. There are multiple types of unknown sizes.
https://github.com/llvm/llvm-project/pull/125258
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits