diff --git a/lib/CodeGen/LiveInterval.cpp b/lib/CodeGen/LiveInterval.cpp index 2dfd714e9ec..9342439cc3d 100644 --- a/lib/CodeGen/LiveInterval.cpp +++ b/lib/CodeGen/LiveInterval.cpp @@ -579,7 +579,8 @@ void LiveInterval::mergeIntervalRanges(const LiveInterval &RHS, // And finally insert any trailing end of RHS (if we have one). for (; RI != RE; ++RI) - if (ranges.back().valno == LHSValNo && RI->start <= ranges.back().end) { + if (!ranges.empty() && + ranges.back().valno == LHSValNo && RI->start <= ranges.back().end) { ranges.back().end = std::max(ranges.back().end, RI->end); } else { ranges.push_back(*RI);