[compiler-rt] [TySan] Fix struct access with different bases (PR #120412)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Jan 13 04:29:11 PST 2025
================
@@ -131,6 +131,14 @@ static bool isAliasingLegalUp(tysan_type_descriptor *TDA,
break;
}
+ // This offset can't be negative. Therefore we must be accessing something
+ // partially inside the last type
+ // We shouldn't check this if we are on the first member, Idx will
+ // underflow, The first member can be offset in rare cases such as
+ // llvm::cl::Option.
+ if (TDA->Struct.Members[Idx].Offset > OffsetA && Idx > 0)
+ Idx -= 1;
----------------
gbMattN wrote:
That sounds right, yes. I think I encountered an error when building llvm with `llvm::cl::Option` where this was the case, but on second touch that sounds like a separate problem...
https://github.com/llvm/llvm-project/pull/120412
More information about the llvm-commits
mailing list