CCTLib
Calling-context and data-object attribution library for Intel Pin
exc_none_tn.cpp
Go to the documentation of this file.
1 // True-negative: no throws, no signals, no non-local jumps. Just a normal
2 // C++ program with vector ops. Verifies the exception path isn't invoked
3 // unnecessarily and cctlib's non-exception path still functions.
4 #include <cstdint>
5 #include <cstdio>
6 #include <vector>
7 #define ITERS 20000
8 static volatile uint64_t sink;
9 
10 int main(int argc, char** argv) {
11  (void)argc; (void)argv;
12  std::vector<uint64_t> v;
13  v.reserve(4);
14  for (uint64_t i = 0; i < ITERS; ++i) {
15  v.push_back(i * 7);
16  }
17  uint64_t sum = 0;
18  for (uint64_t x : v) sum += x;
19  sink = sum;
20  fprintf(stderr, "exc_none_tn: iters=%d sum=%llu\n", ITERS,
21  (unsigned long long)sum);
22  return 0;
23 }
#define ITERS
Definition: exc_none_tn.cpp:7
int main(int argc, char **argv)
Definition: exc_none_tn.cpp:10
static volatile uint64_t sink
Definition: exc_none_tn.cpp:8