@@ -557,35 +557,29 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC,
557
557
558
558
// Setup blacklist files.
559
559
// Add default blacklist from resource directory.
560
- addDefaultBlacklists (D, Kinds, SystemBlacklistFiles );
560
+ addDefaultBlacklists (D, Kinds, BlacklistFiles );
561
561
// Parse -f(no-)sanitize-blacklist options.
562
562
for (const auto *Arg : Args) {
563
563
if (Arg->getOption ().matches (options::OPT_fsanitize_blacklist)) {
564
564
Arg->claim ();
565
565
std::string BLPath = Arg->getValue ();
566
566
if (llvm::sys::fs::exists (BLPath)) {
567
- UserBlacklistFiles.push_back (BLPath);
567
+ BlacklistFiles.push_back (BLPath);
568
+ ExtraDeps.push_back (BLPath);
568
569
} else {
569
570
D.Diag (clang::diag::err_drv_no_such_file) << BLPath;
570
571
}
571
572
} else if (Arg->getOption ().matches (options::OPT_fno_sanitize_blacklist)) {
572
573
Arg->claim ();
573
- UserBlacklistFiles .clear ();
574
- SystemBlacklistFiles .clear ();
574
+ BlacklistFiles .clear ();
575
+ ExtraDeps .clear ();
575
576
}
576
577
}
577
578
// Validate blacklists format.
578
579
{
579
580
std::string BLError;
580
581
std::unique_ptr<llvm::SpecialCaseList> SCL (
581
- llvm::SpecialCaseList::create (UserBlacklistFiles, BLError));
582
- if (!SCL.get ())
583
- D.Diag (clang::diag::err_drv_malformed_sanitizer_blacklist) << BLError;
584
- }
585
- {
586
- std::string BLError;
587
- std::unique_ptr<llvm::SpecialCaseList> SCL (
588
- llvm::SpecialCaseList::create (SystemBlacklistFiles, BLError));
582
+ llvm::SpecialCaseList::create (BlacklistFiles, BLError));
589
583
if (!SCL.get ())
590
584
D.Diag (clang::diag::err_drv_malformed_sanitizer_blacklist) << BLError;
591
585
}
@@ -958,15 +952,15 @@ void SanitizerArgs::addArgs(const ToolChain &TC, const llvm::opt::ArgList &Args,
958
952
CmdArgs.push_back (
959
953
Args.MakeArgString (" -fsanitize-trap=" + toString (TrapSanitizers)));
960
954
961
- for (const auto &BLPath : UserBlacklistFiles ) {
955
+ for (const auto &BLPath : BlacklistFiles ) {
962
956
SmallString<64 > BlacklistOpt (" -fsanitize-blacklist=" );
963
957
BlacklistOpt += BLPath;
964
958
CmdArgs.push_back (Args.MakeArgString (BlacklistOpt));
965
959
}
966
- for (const auto &BLPath : SystemBlacklistFiles ) {
967
- SmallString<64 > BlacklistOpt (" -fsanitize-system-blacklist =" );
968
- BlacklistOpt += BLPath ;
969
- CmdArgs.push_back (Args.MakeArgString (BlacklistOpt ));
960
+ for (const auto &Dep : ExtraDeps ) {
961
+ SmallString<64 > ExtraDepOpt (" -fdepfile-entry =" );
962
+ ExtraDepOpt += Dep ;
963
+ CmdArgs.push_back (Args.MakeArgString (ExtraDepOpt ));
970
964
}
971
965
972
966
if (MsanTrackOrigins)
0 commit comments