From 3fd5671909c9c24d95d913057df7005c6f58b14e Mon Sep 17 00:00:00 2001 From: "Dongjia \"toka\" Zhang" Date: Wed, 17 May 2023 15:22:49 +0200 Subject: [PATCH] add (#1276) --- libafl_cc/src/clang.rs | 7 +++++++ libafl_cc/src/lib.rs | 6 +++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/libafl_cc/src/clang.rs b/libafl_cc/src/clang.rs index 0b609685ea..079ba6fcd4 100644 --- a/libafl_cc/src/clang.rs +++ b/libafl_cc/src/clang.rs @@ -381,6 +381,13 @@ impl CompilerWrapper for ClangWrapper { self.linking } + fn filter(&self, args: &mut Vec) { + let blacklist = ["-Werror=unused-command-line-argument"]; + for item in blacklist { + args.retain(|x| x.clone() != item); + } + } + fn silence(&mut self, value: bool) -> &'_ mut Self { self.is_silent = value; self diff --git a/libafl_cc/src/lib.rs b/libafl_cc/src/lib.rs index fd94480adb..63278e1072 100644 --- a/libafl_cc/src/lib.rs +++ b/libafl_cc/src/lib.rs @@ -157,6 +157,9 @@ pub trait CompilerWrapper { /// Get if in linking mode fn is_linking(&self) -> bool; + /// Filter out argumets + fn filter(&self, _args: &mut Vec) {} + /// Silences `libafl_cc` output fn silence(&mut self, value: bool) -> &'_ mut Self; @@ -165,7 +168,8 @@ pub trait CompilerWrapper { /// Run the compiler fn run(&mut self) -> Result, Error> { - let args = self.command()?; + let mut args = self.command()?; + self.filter(&mut args); if !self.is_silent() { dbg!(args.clone());