@@ -111,19 +111,6 @@ static unsigned getValForKey(StringRef Key, const Remark &Remark) {
111111 return *RemarkArg->getValAsInt ();
112112}
113113
114- Error Filters::regexArgumentsValid () {
115- if (RemarkNameFilter && RemarkNameFilter->IsRegex )
116- if (auto E = checkRegex (RemarkNameFilter->FilterRE ))
117- return E;
118- if (PassNameFilter && PassNameFilter->IsRegex )
119- if (auto E = checkRegex (PassNameFilter->FilterRE ))
120- return E;
121- if (ArgFilter && ArgFilter->IsRegex )
122- if (auto E = checkRegex (ArgFilter->FilterRE ))
123- return E;
124- return Error::success ();
125- }
126-
127114bool Filters::filterRemark (const Remark &Remark) {
128115 if (RemarkNameFilter && !RemarkNameFilter->match (Remark.RemarkName ))
129116 return false ;
@@ -249,28 +236,29 @@ Error RemarkCounter::print(StringRef OutputFileName) {
249236
250237Expected<Filters> getRemarkFilter () {
251238 // Create Filter properties.
252- std::optional<FilterMatcher> RemarkNameFilter;
253- std::optional<FilterMatcher> PassNameFilter;
254- std::optional<FilterMatcher> RemarkArgFilter;
239+ auto MaybeRemarkNameFilter =
240+ FilterMatcher::createExactOrRE (RemarkNameOpt, RemarkNameOptRE);
241+ if (!MaybeRemarkNameFilter)
242+ return MaybeRemarkNameFilter.takeError ();
243+
244+ auto MaybePassNameFilter =
245+ FilterMatcher::createExactOrRE (PassNameOpt, PassNameOptRE);
246+ if (!MaybePassNameFilter)
247+ return MaybePassNameFilter.takeError ();
248+
249+ auto MaybeRemarkArgFilter = FilterMatcher::createExactOrRE (
250+ RemarkFilterArgByOpt, RemarkArgFilterOptRE);
251+ if (!MaybeRemarkArgFilter)
252+ return MaybeRemarkArgFilter.takeError ();
253+
255254 std::optional<Type> RemarkType;
256- if (!RemarkNameOpt.empty ())
257- RemarkNameFilter = {RemarkNameOpt, false };
258- else if (!RemarkNameOptRE.empty ())
259- RemarkNameFilter = {RemarkNameOptRE, true };
260- if (!PassNameOpt.empty ())
261- PassNameFilter = {PassNameOpt, false };
262- else if (!PassNameOptRE.empty ())
263- PassNameFilter = {PassNameOptRE, true };
264255 if (RemarkTypeOpt != Type::Failure)
265256 RemarkType = RemarkTypeOpt;
266- if (!RemarkFilterArgByOpt.empty ())
267- RemarkArgFilter = {RemarkFilterArgByOpt, false };
268- else if (!RemarkArgFilterOptRE.empty ())
269- RemarkArgFilter = {RemarkArgFilterOptRE, true };
257+
270258 // Create RemarkFilter.
271- return Filters::createRemarkFilter ( std::move (RemarkNameFilter ),
272- std::move (PassNameFilter ),
273- std::move (RemarkArgFilter ), RemarkType) ;
259+ return Filters{ std::move (*MaybeRemarkNameFilter ),
260+ std::move (*MaybePassNameFilter ),
261+ std::move (*MaybeRemarkArgFilter ), RemarkType} ;
274262}
275263
276264Error useCollectRemark (StringRef Buffer, Counter &Counter, Filters &Filter) {
@@ -313,12 +301,16 @@ static Error collectRemarks() {
313301 SmallVector<FilterMatcher, 4 > ArgumentsVector;
314302 if (!Keys.empty ()) {
315303 for (auto &Key : Keys)
316- ArgumentsVector.push_back ({ Key, false } );
304+ ArgumentsVector.push_back (FilterMatcher::createExact ( Key) );
317305 } else if (!RKeys.empty ())
318- for (auto Key : RKeys)
319- ArgumentsVector.push_back ({Key, true });
306+ for (auto Key : RKeys) {
307+ auto FM = FilterMatcher::createRE (Key, RKeys);
308+ if (!FM)
309+ return FM.takeError ();
310+ ArgumentsVector.push_back (std::move (*FM));
311+ }
320312 else
321- ArgumentsVector.push_back ({ " .* " , true } );
313+ ArgumentsVector.push_back (FilterMatcher::createAny () );
322314
323315 Expected<ArgumentCounter> AC = ArgumentCounter::createArgumentCounter (
324316 GroupByOpt, ArgumentsVector, Buffer, Filter);
0 commit comments