using namespace llvm;
using namespace llvm::yaml;
+static llvm::Optional<bool> GetEnv(const char *var) {
+ std::string val = llvm::StringRef(getenv(var)).lower();
+ if (val == "0" || val == "off")
+ return false;
+ if (val == "1" || val == "on")
+ return true;
+ return {};
+}
+
Reproducer &Reproducer::Instance() { return *InstanceImpl(); }
llvm::Error Reproducer::Initialize(ReproducerMode mode,
// The environment can override the capture mode.
if (mode != ReproducerMode::Replay) {
- std::string env =
- llvm::StringRef(getenv("LLDB_CAPTURE_REPRODUCER")).lower();
- if (env == "0" || env == "off")
- mode = ReproducerMode::Off;
- else if (env == "1" || env == "on")
- mode = ReproducerMode::Capture;
+ if (llvm::Optional<bool> override = GetEnv("LLDB_CAPTURE_REPRODUCER")) {
+ if (*override)
+ mode = ReproducerMode::Capture;
+ else
+ mode = ReproducerMode::Off;
+ }
}
switch (mode) {