blob: 4d689822b87a26c28bb580885797d5963b207c81 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
// { 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"} } */
|