diff options
Diffstat (limited to 'lib/Module/LowerSwitch.cpp')
-rw-r--r-- | lib/Module/LowerSwitch.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/Module/LowerSwitch.cpp b/lib/Module/LowerSwitch.cpp index 852603b8..fb37da86 100644 --- a/lib/Module/LowerSwitch.cpp +++ b/lib/Module/LowerSwitch.cpp @@ -115,9 +115,16 @@ void LowerSwitchPass::processSwitchInst(SwitchInst *SI) { } CaseVector cases; + +#if LLVM_VERSION_CODE >= LLVM_VERSION(3, 1) for (unsigned i = 0; i < SI->getNumCases(); ++i) cases.push_back(SwitchCase(SI->getCaseValue(i), SI->getCaseSuccessor(i))); +#else + for (unsigned i = 1; i < SI->getNumSuccessors(); ++i) + cases.push_back(SwitchCase(SI->getSuccessorValue(i), + SI->getSuccessor(i))); +#endif // reverse cases, as switchConvert constructs a chain of // basic blocks by appending to the front. if we reverse, |