llvm/llvm/test/tools/llvm-cov/Inputs/multithreaded_report/pow.h

template<typename T>
T pow(T b, T p) {
  if (!p)
    return 1;

  while (--p) {
    b *= b;
  }

  return b;
}