diff options
Diffstat (limited to 'clang/lib/Driver/Driver.cpp')
| -rw-r--r-- | clang/lib/Driver/Driver.cpp | 12 | 
1 files changed, 8 insertions, 4 deletions
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index 71c5280..51618d1 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -2540,10 +2540,14 @@ bool Driver::HandleImmediateArgs(Compilation &C) {    }    if (C.getArgs().hasArg(options::OPT_print_runtime_dir)) { -    if (std::optional<std::string> RuntimePath = TC.getRuntimePath()) -      llvm::outs() << *RuntimePath << '\n'; -    else -      llvm::outs() << TC.getCompilerRTPath() << '\n'; +    for (auto RuntimePath : +         {TC.getRuntimePath(), std::make_optional(TC.getCompilerRTPath())}) { +      if (RuntimePath && getVFS().exists(*RuntimePath)) { +        llvm::outs() << *RuntimePath << '\n'; +        return false; +      } +    } +    llvm::outs() << "(runtime dir is not present)" << '\n';      return false;    }  | 
