@@ -547,29 +547,35 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC,
547547
548548 // Setup blacklist files.
549549 // Add default blacklist from resource directory.
550- addDefaultBlacklists (D, Kinds, BlacklistFiles );
550+ addDefaultBlacklists (D, Kinds, SystemBlacklistFiles );
551551 // Parse -f(no-)sanitize-blacklist options.
552552 for (const auto *Arg : Args) {
553553 if (Arg->getOption ().matches (options::OPT_fsanitize_blacklist)) {
554554 Arg->claim ();
555555 std::string BLPath = Arg->getValue ();
556556 if (llvm::sys::fs::exists (BLPath)) {
557- BlacklistFiles.push_back (BLPath);
558- ExtraDeps.push_back (BLPath);
557+ UserBlacklistFiles.push_back (BLPath);
559558 } else {
560559 D.Diag (clang::diag::err_drv_no_such_file) << BLPath;
561560 }
562561 } else if (Arg->getOption ().matches (options::OPT_fno_sanitize_blacklist)) {
563562 Arg->claim ();
564- BlacklistFiles .clear ();
565- ExtraDeps .clear ();
563+ UserBlacklistFiles .clear ();
564+ SystemBlacklistFiles .clear ();
566565 }
567566 }
568567 // Validate blacklists format.
569568 {
570569 std::string BLError;
571570 std::unique_ptr<llvm::SpecialCaseList> SCL (
572- llvm::SpecialCaseList::create (BlacklistFiles, BLError));
571+ llvm::SpecialCaseList::create (UserBlacklistFiles, BLError));
572+ if (!SCL.get ())
573+ D.Diag (clang::diag::err_drv_malformed_sanitizer_blacklist) << BLError;
574+ }
575+ {
576+ std::string BLError;
577+ std::unique_ptr<llvm::SpecialCaseList> SCL (
578+ llvm::SpecialCaseList::create (SystemBlacklistFiles, BLError));
573579 if (!SCL.get ())
574580 D.Diag (clang::diag::err_drv_malformed_sanitizer_blacklist) << BLError;
575581 }
@@ -920,15 +926,15 @@ void SanitizerArgs::addArgs(const ToolChain &TC, const llvm::opt::ArgList &Args,
920926 CmdArgs.push_back (
921927 Args.MakeArgString (" -fsanitize-trap=" + toString (TrapSanitizers)));
922928
923- for (const auto &BLPath : BlacklistFiles ) {
929+ for (const auto &BLPath : UserBlacklistFiles ) {
924930 SmallString<64 > BlacklistOpt (" -fsanitize-blacklist=" );
925931 BlacklistOpt += BLPath;
926932 CmdArgs.push_back (Args.MakeArgString (BlacklistOpt));
927933 }
928- for (const auto &Dep : ExtraDeps ) {
929- SmallString<64 > ExtraDepOpt (" -fdepfile-entry =" );
930- ExtraDepOpt += Dep ;
931- CmdArgs.push_back (Args.MakeArgString (ExtraDepOpt ));
934+ for (const auto &BLPath : SystemBlacklistFiles ) {
935+ SmallString<64 > BlacklistOpt (" -fsanitize-system-blacklist =" );
936+ BlacklistOpt += BLPath ;
937+ CmdArgs.push_back (Args.MakeArgString (BlacklistOpt ));
932938 }
933939
934940 if (MsanTrackOrigins)
0 commit comments