blob: 4d689822b87a26c28bb580885797d5963b207c81 [file] [log] [blame]
// { dg-do compile }
// { dg-require-effective-target c++17 }
// { dg-options "-O2 -fdump-tree-vrp1" }
// Test we can remove a range bound after the assert.
#include <cassert>
#include <cstdint>
#include <cstddef>
#include <vector>
uint64_t f(std::vector<uint64_t>& data, size_t start, size_t end){
assert(start < end && start < data.size() && end <= data.size());
uint64_t total = 0;
for (size_t i = start; i < end; i++) {
total += data.at(i);
}
return total;
}
/* { dg-final { scan-tree-dump-not "throw" "vrp1"} } */