@@ -239,13 +239,20 @@ static bool parseFileExtensions(llvm::ArrayRef<std::string> AllFileExtensions,
239239void ClangTidyContext::setCurrentFile (StringRef File) {
240240 CurrentFile = std::string (File);
241241 CurrentOptions = getOptionsForFile (CurrentFile);
242- CheckFilter = std::make_unique<CachedGlobList>(*getOptions ().Checks );
243- WarningAsErrorFilter =
244- std::make_unique<CachedGlobList>(*getOptions ().WarningsAsErrors );
245- if (!parseFileExtensions (*getOptions ().HeaderFileExtensions ,
242+ CheckFilter = std::make_unique<CachedGlobList>(
243+ getOptions ().Checks ? StringRef (*getOptions ().Checks ) : StringRef (" " ));
244+ WarningAsErrorFilter = std::make_unique<CachedGlobList>(
245+ getOptions ().WarningsAsErrors ? StringRef (*getOptions ().WarningsAsErrors )
246+ : StringRef (" " ));
247+ static const std::vector<std::string> EmptyFileExtensions;
248+ if (!parseFileExtensions (getOptions ().HeaderFileExtensions
249+ ? *getOptions ().HeaderFileExtensions
250+ : EmptyFileExtensions,
246251 HeaderFileExtensions))
247252 this ->configurationDiag (" Invalid header file extensions" );
248- if (!parseFileExtensions (*getOptions ().ImplementationFileExtensions ,
253+ if (!parseFileExtensions (getOptions ().ImplementationFileExtensions
254+ ? *getOptions ().ImplementationFileExtensions
255+ : EmptyFileExtensions,
249256 ImplementationFileExtensions))
250257 this ->configurationDiag (" Invalid implementation file extensions" );
251258}
@@ -569,7 +576,7 @@ void ClangTidyDiagnosticConsumer::checkFilters(SourceLocation Location,
569576 return ;
570577 }
571578
572- if (!* Context.getOptions ().SystemHeaders &&
579+ if (!Context.getOptions ().SystemHeaders . value_or ( false ) &&
573580 (Sources.isInSystemHeader (Location) || Sources.isInSystemMacro (Location)))
574581 return ;
575582
@@ -600,15 +607,19 @@ void ClangTidyDiagnosticConsumer::checkFilters(SourceLocation Location,
600607
601608llvm::Regex *ClangTidyDiagnosticConsumer::getHeaderFilter () {
602609 if (!HeaderFilter)
603- HeaderFilter =
604- std::make_unique<llvm::Regex>(*Context.getOptions ().HeaderFilterRegex );
610+ HeaderFilter = std::make_unique<llvm::Regex>(
611+ Context.getOptions ().HeaderFilterRegex
612+ ? StringRef (*Context.getOptions ().HeaderFilterRegex )
613+ : StringRef (" " ));
605614 return HeaderFilter.get ();
606615}
607616
608617llvm::Regex *ClangTidyDiagnosticConsumer::getExcludeHeaderFilter () {
609618 if (!ExcludeHeaderFilter)
610619 ExcludeHeaderFilter = std::make_unique<llvm::Regex>(
611- *Context.getOptions ().ExcludeHeaderFilterRegex );
620+ Context.getOptions ().ExcludeHeaderFilterRegex
621+ ? StringRef (*Context.getOptions ().ExcludeHeaderFilterRegex )
622+ : StringRef (" " ));
612623 return ExcludeHeaderFilter.get ();
613624}
614625
0 commit comments