Make getModRefInfo(Instruction *) not crash on certain types of instructions

llvm-svn: 236023
This commit is contained in:
Daniel Berlin
2015-04-28 19:19:14 +00:00
parent 163f672cd5
commit ec1de3fb19
2 changed files with 23 additions and 10 deletions

View File

@@ -81,6 +81,13 @@ TEST_F(AliasAnalysisTest, getModRefInfo) {
auto *Store1 = new StoreInst(Value, Addr, BB);
auto *Load1 = new LoadInst(Addr, "load", BB);
auto *Add1 = BinaryOperator::CreateAdd(Value, Value, "add", BB);
auto *VAArg1 = new VAArgInst(Addr, PtrType, "vaarg", BB);
auto *CmpXChg1 = new AtomicCmpXchgInst(Addr, ConstantInt::get(IntType, 0),
ConstantInt::get(IntType, 1),
Monotonic, Monotonic, CrossThread, BB);
auto *AtomicRMW =
new AtomicRMWInst(AtomicRMWInst::Xchg, Addr, ConstantInt::get(IntType, 1),
Monotonic, CrossThread, BB);
ReturnInst::Create(C, nullptr, BB);
@@ -88,6 +95,9 @@ TEST_F(AliasAnalysisTest, getModRefInfo) {
CheckModRef(Store1, AliasAnalysis::ModRefResult::Mod);
CheckModRef(Load1, AliasAnalysis::ModRefResult::Ref);
CheckModRef(Add1, AliasAnalysis::ModRefResult::NoModRef);
CheckModRef(VAArg1, AliasAnalysis::ModRefResult::ModRef);
CheckModRef(CmpXChg1, AliasAnalysis::ModRefResult::ModRef);
CheckModRef(AtomicRMW, AliasAnalysis::ModRefResult::ModRef);
}
} // end anonymous namspace