llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: woruyu (woruyu) <details> <summary>Changes</summary> Summary This PR resolves https://github.com/llvm/llvm-project/issues/147187 --- Full diff: https://github.com/llvm/llvm-project/pull/147959.diff 3 Files Affected: - (modified) clang/include/clang/Basic/SanitizerSpecialCaseList.h (+3-2) - (modified) clang/lib/Basic/NoSanitizeList.cpp (+2-1) - (modified) clang/lib/Basic/SanitizerSpecialCaseList.cpp (+7-2) ``````````diff diff --git a/clang/include/clang/Basic/SanitizerSpecialCaseList.h b/clang/include/clang/Basic/SanitizerSpecialCaseList.h index cf7485909e409..72cdcf7c467f0 100644 --- a/clang/include/clang/Basic/SanitizerSpecialCaseList.h +++ b/clang/include/clang/Basic/SanitizerSpecialCaseList.h @@ -14,6 +14,7 @@ #ifndef LLVM_CLANG_BASIC_SANITIZERSPECIALCASELIST_H #define LLVM_CLANG_BASIC_SANITIZERSPECIALCASELIST_H +#include "clang/Basic/Diagnostic.h" #include "clang/Basic/LLVM.h" #include "clang/Basic/Sanitizers.h" #include "llvm/ADT/StringRef.h" @@ -37,8 +38,8 @@ class SanitizerSpecialCaseList : public llvm::SpecialCaseList { std::string &Error); static std::unique_ptr<SanitizerSpecialCaseList> - createOrDie(const std::vector<std::string> &Paths, - llvm::vfs::FileSystem &VFS); + createOrDie(const std::vector<std::string> &Paths, llvm::vfs::FileSystem &VFS, + DiagnosticsEngine &Diags); // Query ignorelisted entries if any bit in Mask matches the entry's section. bool inSection(SanitizerMask Mask, StringRef Prefix, StringRef Query, diff --git a/clang/lib/Basic/NoSanitizeList.cpp b/clang/lib/Basic/NoSanitizeList.cpp index 96f79fb2a2a29..1ae304fbd2132 100644 --- a/clang/lib/Basic/NoSanitizeList.cpp +++ b/clang/lib/Basic/NoSanitizeList.cpp @@ -22,7 +22,8 @@ using namespace clang; NoSanitizeList::NoSanitizeList(const std::vector<std::string> &NoSanitizePaths, SourceManager &SM) : SSCL(SanitizerSpecialCaseList::createOrDie( - NoSanitizePaths, SM.getFileManager().getVirtualFileSystem())), + NoSanitizePaths, SM.getFileManager().getVirtualFileSystem(), + SM.getDiagnostics())), SM(SM) {} NoSanitizeList::~NoSanitizeList() = default; diff --git a/clang/lib/Basic/SanitizerSpecialCaseList.cpp b/clang/lib/Basic/SanitizerSpecialCaseList.cpp index f7bc1d5545d75..51a09b341f495 100644 --- a/clang/lib/Basic/SanitizerSpecialCaseList.cpp +++ b/clang/lib/Basic/SanitizerSpecialCaseList.cpp @@ -30,11 +30,16 @@ SanitizerSpecialCaseList::create(const std::vector<std::string> &Paths, std::unique_ptr<SanitizerSpecialCaseList> SanitizerSpecialCaseList::createOrDie(const std::vector<std::string> &Paths, - llvm::vfs::FileSystem &VFS) { + llvm::vfs::FileSystem &VFS, + DiagnosticsEngine &Diags) { std::string Error; if (auto SSCL = create(Paths, VFS, Error)) return SSCL; - llvm::report_fatal_error(StringRef(Error)); + unsigned DiagID = Diags.getCustomDiagID(clang::DiagnosticsEngine::Error, + "failed to load NoSanitize file: %0"); + + Diags.Report(DiagID) << Error; + exit(1); } void SanitizerSpecialCaseList::createSanitizerSections() { `````````` </details> https://github.com/llvm/llvm-project/pull/147959 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits