[clang] [llvm] fix: replace report_fatal_error with Diags and exit (PR #147959)

via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 25 02:39:58 PDT 2025


woruyu wrote:

we can't use diagnostics in llvm-tools, so keep the overload function `std::string &Error`, which is called by llvm-cfi-verify.cpp or CodeCoverage.cpp
```
LLVM_ABI static std::unique_ptr<SpecialCaseList>
  create(const std::vector<std::string> &Paths, llvm::vfs::FileSystem &FS,
         std::string &Error);

// first in llvm-cfi-verify.cpp
std::unique_ptr<SpecialCaseList> SpecialCaseList;
  if (IgnorelistFilename != "-") {
    std::string Error;
    SpecialCaseList = SpecialCaseList::create({IgnorelistFilename},
                                              *vfs::getRealFileSystem(), Error);
    if (!SpecialCaseList) {
      errs() << "Failed to get ignorelist: " << Error << "\n";
      exit(EXIT_FAILURE);
    }
  }

// second in CodeCoverage.cpp
// Read in -name-allowlist files.
if (!NameFilterFiles.empty()) {
  std::string SpecialCaseListErr;
  NameAllowlist = SpecialCaseList::create(
      NameFilterFiles, *vfs::getRealFileSystem(), SpecialCaseListErr);
  if (!NameAllowlist)
    error(SpecialCaseListErr);
}
```

https://github.com/llvm/llvm-project/pull/147959


More information about the llvm-commits mailing list