mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-24 23:28:41 +00:00
[msan] Fix origin propagation for select of floats.
MSan does not assign origin for instrumentation temps (i.e. the ones that do not come from the application code), but "select" instrumentation erroneously tried to use one of those. https://code.google.com/p/memory-sanitizer/issues/detail?id=78 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222918 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -2452,9 +2452,10 @@ struct MemorySanitizerVisitor : public InstVisitor<MemorySanitizerVisitor> {
|
||||
}
|
||||
// a = select b, c, d
|
||||
// Oa = Sb ? Ob : (b ? Oc : Od)
|
||||
setOrigin(&I, IRB.CreateSelect(
|
||||
Sb, getOrigin(I.getCondition()),
|
||||
IRB.CreateSelect(B, getOrigin(C), getOrigin(D))));
|
||||
setOrigin(
|
||||
&I, IRB.CreateSelect(Sb, getOrigin(I.getCondition()),
|
||||
IRB.CreateSelect(B, getOrigin(I.getTrueValue()),
|
||||
getOrigin(I.getFalseValue()))));
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user