summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
diff options
context:
space:
mode:
authorKostya Serebryany <kcc@google.com>2015-08-11 00:24:39 +0000
committerKostya Serebryany <kcc@google.com>2015-08-11 00:24:39 +0000
commit2569118621228f811d9dbaba447063e97cc3ae76 (patch)
treec9752330f1bc84270c876587f657435df56b6340 /llvm/lib/Transforms
parent7742b8ba15aa923b8be8347c5a20c4e88f15c5a0 (diff)
downloadbcm5719-llvm-2569118621228f811d9dbaba447063e97cc3ae76.tar.gz
bcm5719-llvm-2569118621228f811d9dbaba447063e97cc3ae76.zip
[libFuzzer] don't crash if the condition in a switch has unusual type (e.g. i72)
llvm-svn: 244544
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r--llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp b/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
index c91b89df830..b6829aef2d5 100644
--- a/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
+++ b/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
@@ -375,6 +375,9 @@ void SanitizerCoverageModule::InjectTraceForSwitch(
IRBuilder<> IRB(I);
SmallVector<Constant *, 16> Initializers;
Value *Cond = SI->getCondition();
+ if (Cond->getType()->getScalarSizeInBits() >
+ Int64Ty->getScalarSizeInBits())
+ continue;
Initializers.push_back(ConstantInt::get(Int64Ty, SI->getNumCases()));
Initializers.push_back(
ConstantInt::get(Int64Ty, Cond->getType()->getScalarSizeInBits()));
OpenPOWER on IntegriCloud