mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 12:41:49 +01:00
034e3da912
DFSan has flags to control flows between pointers and objects referred by pointers. For example, a = *p; L(a) = L(*p) when -dfsan-combine-pointer-labels-on-load = false L(a) = L(*p) + L(p) when -dfsan-combine-pointer-labels-on-load = true *p = b; L(*p) = L(b) when -dfsan-combine-pointer-labels-on-store = false L(*p) = L(b) + L(p) when -dfsan-combine-pointer-labels-on-store = true The question is what to do with p += c. In practice we found many confusing flows if we propagate labels from c to p. So a new flag works like this p += c; L(p) = L(p) when -dfsan-propagate-via-pointer-arithmetic = false L(p) = L(p) + L(c) when -dfsan-propagate-via-pointer-arithmetic = true Reviewed-by: gbalats Differential Revision: https://reviews.llvm.org/D103176