diff options
| author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2017-07-11 18:13:52 +0000 |
|---|---|---|
| committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2017-07-11 18:13:52 +0000 |
| commit | 3d5ea713f7d5a824e091adcf81a3d9fc38010d03 (patch) | |
| tree | 74b59d896cf6d22d239be097c211e80a04e73b5e /llvm/lib/Transforms | |
| parent | b9fb12291ac309d96af79801ce449026104949a7 (diff) | |
| download | bcm5719-llvm-3d5ea713f7d5a824e091adcf81a3d9fc38010d03.tar.gz bcm5719-llvm-3d5ea713f7d5a824e091adcf81a3d9fc38010d03.zip | |
[msan] Only check shadow memory for operands that are sized.
Fixes PR33347: https://bugs.llvm.org/show_bug.cgi?id=33347.
Differential Revision: https://reviews.llvm.org/D35160
Patch by Matt Morehouse.
llvm-svn: 307684
Diffstat (limited to 'llvm/lib/Transforms')
| -rw-r--r-- | llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp b/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp index df4ee9969c0..1348e0ed0ed 100644 --- a/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp +++ b/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp @@ -2918,8 +2918,11 @@ struct MemorySanitizerVisitor : public InstVisitor<MemorySanitizerVisitor> { if (ClDumpStrictInstructions) dumpInst(I); DEBUG(dbgs() << "DEFAULT: " << I << "\n"); - for (size_t i = 0, n = I.getNumOperands(); i < n; i++) - insertShadowCheck(I.getOperand(i), &I); + for (size_t i = 0, n = I.getNumOperands(); i < n; i++) { + Value *Operand = I.getOperand(i); + if (Operand->getType()->isSized()) + insertShadowCheck(Operand, &I); + } setShadow(&I, getCleanShadow(&I)); setOrigin(&I, getCleanOrigin()); } |

