ProgramArgs.push_back(Arg.c_str());
Optional<StringRef> Redirects[3]; // STDIN, STDOUT, STDERR
- int Result = sys::ExecuteAndWait(TestName, ProgramArgs, None, Redirects);
+ std::string ErrMsg;
+ int Result =
+ sys::ExecuteAndWait(TestName, ProgramArgs, None, Redirects,
+ /*SecondsToWait=*/0, /*MemoryLimit=*/0, &ErrMsg);
if (Result < 0) {
- Error E = make_error<StringError>("Error running interesting-ness test\n",
+ Error E = make_error<StringError>("Error running interesting-ness test: " +
+ ErrMsg,
inconvertibleErrorCode());
errs() << toString(std::move(E));
exit(1);
#include "ReduceFunctions.h"
#include "Delta.h"
+#include "llvm/ADT/SetVector.h"
#include <set>
using namespace llvm;
// Delete out-of-chunk functions, and replace their calls with undef
std::vector<Function *> FuncsToRemove;
- std::vector<CallInst *> CallsToRemove;
+ SetVector<CallInst *> CallsToRemove;
for (auto &F : *Program)
if (!FuncsToKeep.count(&F)) {
for (auto U : F.users())
if (auto *Call = dyn_cast<CallInst>(U)) {
Call->replaceAllUsesWith(UndefValue::get(Call->getType()));
- CallsToRemove.push_back(Call);
+ CallsToRemove.insert(Call);
}
F.replaceAllUsesWith(UndefValue::get(F.getType()));
FuncsToRemove.push_back(&F);