NFC: Clean up of IntrusiveRefCntPtr construction from raw pointers. (#151545)

Handles clang::DiagnosticsEngine and clang::DiagnosticIDs.

For DiagnosticIDs, this mostly migrates from `new DiagnosticIDs` to
convenience method `DiagnosticIDs::create()`.

Part of cleanup https://github.com/llvm/llvm-project/issues/151026
This commit is contained in:
James Y Knight 2025-07-31 15:07:35 -04:00 committed by GitHub
parent 1c60b7da4f
commit c7f3437507
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
90 changed files with 198 additions and 237 deletions

View File

@ -97,8 +97,7 @@ int main(int argc, char **argv) {
cl::ParseCommandLineOptions(argc, argv); cl::ParseCommandLineOptions(argc, argv);
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diagnostics( DiagnosticsEngine Diagnostics(DiagnosticIDs::create(), DiagOpts);
IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs()), DiagOpts);
// Determine a formatting style from options. // Determine a formatting style from options.
auto FormatStyleOrError = format::getStyle(FormatStyleOpt, FormatStyleConfig, auto FormatStyleOrError = format::getStyle(FormatStyleOpt, FormatStyleConfig,

View File

@ -128,9 +128,8 @@ int main(int argc, const char **argv) {
LangOptions DefaultLangOptions; LangOptions DefaultLangOptions;
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
clang::TextDiagnosticPrinter DiagnosticPrinter(errs(), DiagOpts); clang::TextDiagnosticPrinter DiagnosticPrinter(errs(), DiagOpts);
DiagnosticsEngine Diagnostics( DiagnosticsEngine Diagnostics(DiagnosticIDs::create(), DiagOpts,
IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs()), DiagOpts, &DiagnosticPrinter, false);
&DiagnosticPrinter, false);
auto &FileMgr = Tool.getFiles(); auto &FileMgr = Tool.getFiles();
SourceManager Sources(Diagnostics, FileMgr); SourceManager Sources(Diagnostics, FileMgr);
Rewriter Rewrite(Sources, DefaultLangOptions); Rewriter Rewrite(Sources, DefaultLangOptions);

View File

@ -454,7 +454,7 @@ int includeFixerMain(int argc, const char **argv) {
// Set up a new source manager for applying the resulting replacements. // Set up a new source manager for applying the resulting replacements.
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diagnostics(new DiagnosticIDs, DiagOpts); DiagnosticsEngine Diagnostics(DiagnosticIDs::create(), DiagOpts);
TextDiagnosticPrinter DiagnosticPrinter(outs(), DiagOpts); TextDiagnosticPrinter DiagnosticPrinter(outs(), DiagOpts);
SourceManager SM(Diagnostics, tool.getFiles()); SourceManager SM(Diagnostics, tool.getFiles());
Diagnostics.setClient(&DiagnosticPrinter, false); Diagnostics.setClient(&DiagnosticPrinter, false);

View File

@ -178,9 +178,8 @@ int main(int argc, const char **argv) {
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
clang::TextDiagnosticPrinter DiagnosticPrinter(errs(), DiagOpts); clang::TextDiagnosticPrinter DiagnosticPrinter(errs(), DiagOpts);
DiagnosticsEngine Diagnostics( DiagnosticsEngine Diagnostics(DiagnosticIDs::create(), DiagOpts,
IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs()), DiagOpts, &DiagnosticPrinter, false);
&DiagnosticPrinter, false);
auto &FileMgr = Tool.getFiles(); auto &FileMgr = Tool.getFiles();
SourceManager SM(Diagnostics, FileMgr); SourceManager SM(Diagnostics, FileMgr);
Rewriter Rewrite(SM, LangOptions()); Rewriter Rewrite(SM, LangOptions());

View File

@ -74,9 +74,8 @@ int main(int argc, const char **argv) {
LangOptions DefaultLangOptions; LangOptions DefaultLangOptions;
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
TextDiagnosticPrinter DiagnosticPrinter(errs(), DiagOpts); TextDiagnosticPrinter DiagnosticPrinter(errs(), DiagOpts);
DiagnosticsEngine Diagnostics( DiagnosticsEngine Diagnostics(DiagnosticIDs::create(), DiagOpts,
IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs()), DiagOpts, &DiagnosticPrinter, false);
&DiagnosticPrinter, false);
auto &FileMgr = Tool.getFiles(); auto &FileMgr = Tool.getFiles();
SourceManager Sources(Diagnostics, FileMgr); SourceManager Sources(Diagnostics, FileMgr);

View File

@ -96,8 +96,7 @@ public:
llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> BaseFS) llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> BaseFS)
: Files(FileSystemOptions(), std::move(BaseFS)), : Files(FileSystemOptions(), std::move(BaseFS)),
DiagPrinter(new TextDiagnosticPrinter(llvm::outs(), DiagOpts)), DiagPrinter(new TextDiagnosticPrinter(llvm::outs(), DiagOpts)),
Diags(IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs), DiagOpts, Diags(DiagnosticIDs::create(), DiagOpts, DiagPrinter),
DiagPrinter),
SourceMgr(Diags, Files), Context(Context), ApplyFixes(ApplyFixes) { SourceMgr(Diags, Files), Context(Context), ApplyFixes(ApplyFixes) {
DiagOpts.ShowColors = Context.getOptions().UseColor.value_or( DiagOpts.ShowColors = Context.getOptions().UseColor.value_or(
llvm::sys::Process::StandardOutHasColors()); llvm::sys::Process::StandardOutHasColors());
@ -570,7 +569,7 @@ runClangTidy(clang::tidy::ClangTidyContext &Context,
ClangTidyDiagnosticConsumer DiagConsumer(Context, nullptr, true, ApplyAnyFix); ClangTidyDiagnosticConsumer DiagConsumer(Context, nullptr, true, ApplyAnyFix);
auto DiagOpts = std::make_unique<DiagnosticOptions>(); auto DiagOpts = std::make_unique<DiagnosticOptions>();
DiagnosticsEngine DE(new DiagnosticIDs(), *DiagOpts, &DiagConsumer, DiagnosticsEngine DE(DiagnosticIDs::create(), *DiagOpts, &DiagConsumer,
/*ShouldOwnClient=*/false); /*ShouldOwnClient=*/false);
Context.setDiagnosticsEngine(std::move(DiagOpts), &DE); Context.setDiagnosticsEngine(std::move(DiagOpts), &DE);
Tool.setDiagnosticConsumer(&DiagConsumer); Tool.setDiagnosticConsumer(&DiagConsumer);

View File

@ -71,7 +71,7 @@ ExpandModularHeadersPPCallbacks::ExpandModularHeadersPPCallbacks(
InMemoryFs(new llvm::vfs::InMemoryFileSystem), InMemoryFs(new llvm::vfs::InMemoryFileSystem),
Sources(Compiler.getSourceManager()), Sources(Compiler.getSourceManager()),
// Forward the new diagnostics to the original DiagnosticConsumer. // Forward the new diagnostics to the original DiagnosticConsumer.
Diags(new DiagnosticIDs, DiagOpts, Diags(DiagnosticIDs::create(), DiagOpts,
new ForwardingDiagnosticConsumer(Compiler.getDiagnosticClient())), new ForwardingDiagnosticConsumer(Compiler.getDiagnosticClient())),
LangOpts(Compiler.getLangOpts()), HSOpts(Compiler.getHeaderSearchOpts()) { LangOpts(Compiler.getLangOpts()), HSOpts(Compiler.getHeaderSearchOpts()) {
// Add a FileSystem containing the extra files needed in place of modular // Add a FileSystem containing the extra files needed in place of modular

View File

@ -41,7 +41,7 @@ public:
new ClangTidyDiagnosticConsumer(*Context, &Compiler.getDiagnostics()); new ClangTidyDiagnosticConsumer(*Context, &Compiler.getDiagnostics());
auto DiagOpts = std::make_unique<DiagnosticOptions>(); auto DiagOpts = std::make_unique<DiagnosticOptions>();
auto DiagEngine = std::make_unique<DiagnosticsEngine>( auto DiagEngine = std::make_unique<DiagnosticsEngine>(
new DiagnosticIDs, *DiagOpts, DiagConsumer); DiagnosticIDs::create(), *DiagOpts, DiagConsumer);
Context->setDiagnosticsEngine(std::move(DiagOpts), DiagEngine.get()); Context->setDiagnosticsEngine(std::move(DiagOpts), DiagEngine.get());
// Create the AST consumer. // Create the AST consumer.

View File

@ -659,7 +659,7 @@ buildPreamble(PathRef FileName, CompilerInvocation CI,
WallTimer PreambleTimer; WallTimer PreambleTimer;
PreambleTimer.startTimer(); PreambleTimer.startTimer();
auto BuiltPreamble = PrecompiledPreamble::Build( auto BuiltPreamble = PrecompiledPreamble::Build(
CI, ContentsBuffer.get(), Bounds, *PreambleDiagsEngine, CI, ContentsBuffer.get(), Bounds, PreambleDiagsEngine,
Stats ? TimedFS : StatCacheFS, std::make_shared<PCHContainerOperations>(), Stats ? TimedFS : StatCacheFS, std::make_shared<PCHContainerOperations>(),
StoreInMemory, /*StoragePath=*/"", CapturedInfo); StoreInMemory, /*StoragePath=*/"", CapturedInfo);

View File

@ -254,7 +254,7 @@ bool isValidTarget(llvm::StringRef Triple) {
std::shared_ptr<TargetOptions> TargetOpts(new TargetOptions); std::shared_ptr<TargetOptions> TargetOpts(new TargetOptions);
TargetOpts->Triple = Triple.str(); TargetOpts->Triple = Triple.str();
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diags(new DiagnosticIDs, DiagOpts, DiagnosticsEngine Diags(DiagnosticIDs::create(), DiagOpts,
new IgnoringDiagConsumer); new IgnoringDiagConsumer);
llvm::IntrusiveRefCntPtr<TargetInfo> Target = llvm::IntrusiveRefCntPtr<TargetInfo> Target =
TargetInfo::CreateTargetInfo(Diags, *TargetOpts); TargetInfo::CreateTargetInfo(Diags, *TargetOpts);

View File

@ -299,7 +299,7 @@ TEST_F(ConfigCompileTests, DiagnosticSuppression) {
"typecheck_bool_condition", "typecheck_bool_condition",
"unexpected_friend", "warn_alloca")); "unexpected_friend", "warn_alloca"));
clang::DiagnosticOptions DiagOpts; clang::DiagnosticOptions DiagOpts;
clang::DiagnosticsEngine DiagEngine(new DiagnosticIDs, DiagOpts, clang::DiagnosticsEngine DiagEngine(DiagnosticIDs::create(), DiagOpts,
new clang::IgnoringDiagConsumer); new clang::IgnoringDiagConsumer);
using Diag = clang::Diagnostic; using Diag = clang::Diagnostic;

View File

@ -45,7 +45,7 @@ TEST(FileEdits, AbsolutePath) {
MemFS->addFile(Path, 0, llvm::MemoryBuffer::getMemBuffer("", Path)); MemFS->addFile(Path, 0, llvm::MemoryBuffer::getMemBuffer("", Path));
FileManager FM(FileSystemOptions(), MemFS); FileManager FM(FileSystemOptions(), MemFS);
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine DE(new DiagnosticIDs, DiagOpts); DiagnosticsEngine DE(DiagnosticIDs::create(), DiagOpts);
SourceManager SM(DE, FM); SourceManager SM(DE, FM);
for (const auto *Path : RelPaths) { for (const auto *Path : RelPaths) {

View File

@ -47,7 +47,7 @@ ModularizeUtilities::ModularizeUtilities(std::vector<std::string> &InputPaths,
ProblemFilesPath(ProblemFilesListPath), HasModuleMap(false), ProblemFilesPath(ProblemFilesListPath), HasModuleMap(false),
MissingHeaderCount(0), MissingHeaderCount(0),
// Init clang stuff needed for loading the module map and preprocessing. // Init clang stuff needed for loading the module map and preprocessing.
LangOpts(new LangOptions()), DiagIDs(new DiagnosticIDs()), LangOpts(new LangOptions()), DiagIDs(DiagnosticIDs::create()),
DC(llvm::errs(), DiagnosticOpts), DC(llvm::errs(), DiagnosticOpts),
Diagnostics(new DiagnosticsEngine(DiagIDs, DiagnosticOpts, &DC, false)), Diagnostics(new DiagnosticsEngine(DiagIDs, DiagnosticOpts, &DC, false)),
TargetOpts(new ModuleMapTargetOptions()), TargetOpts(new ModuleMapTargetOptions()),

View File

@ -33,8 +33,7 @@ makeTUDiagnostics(const std::string &MainSourceFile, StringRef DiagnosticName,
// before applying. // before applying.
TEST(ApplyReplacementsTest, mergeDiagnosticsWithNoFixes) { TEST(ApplyReplacementsTest, mergeDiagnosticsWithNoFixes) {
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diagnostics( DiagnosticsEngine Diagnostics(DiagnosticIDs::create(), DiagOpts);
IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs()), DiagOpts);
FileManager Files((FileSystemOptions())); FileManager Files((FileSystemOptions()));
SourceManager SM(Diagnostics, Files); SourceManager SM(Diagnostics, Files);
TUReplacements TURs; TUReplacements TURs;

View File

@ -318,7 +318,8 @@ TEST(CheckOptionsValidation, MissingOptions) {
ClangTidyGlobalOptions(), Options)); ClangTidyGlobalOptions(), Options));
ClangTidyDiagnosticConsumer DiagConsumer(Context); ClangTidyDiagnosticConsumer DiagConsumer(Context);
auto DiagOpts = std::make_unique<DiagnosticOptions>(); auto DiagOpts = std::make_unique<DiagnosticOptions>();
DiagnosticsEngine DE(new DiagnosticIDs(), *DiagOpts, &DiagConsumer, false); DiagnosticsEngine DE(DiagnosticIDs::create(), *DiagOpts, &DiagConsumer,
false);
Context.setDiagnosticsEngine(std::move(DiagOpts), &DE); Context.setDiagnosticsEngine(std::move(DiagOpts), &DE);
TestCheck TestCheck(&Context); TestCheck TestCheck(&Context);
EXPECT_FALSE(TestCheck.getLocal("Opt")); EXPECT_FALSE(TestCheck.getLocal("Opt"));
@ -348,7 +349,8 @@ TEST(CheckOptionsValidation, ValidIntOptions) {
ClangTidyGlobalOptions(), Options)); ClangTidyGlobalOptions(), Options));
ClangTidyDiagnosticConsumer DiagConsumer(Context); ClangTidyDiagnosticConsumer DiagConsumer(Context);
auto DiagOpts = std::make_unique<DiagnosticOptions>(); auto DiagOpts = std::make_unique<DiagnosticOptions>();
DiagnosticsEngine DE(new DiagnosticIDs(), *DiagOpts, &DiagConsumer, false); DiagnosticsEngine DE(DiagnosticIDs::create(), *DiagOpts, &DiagConsumer,
false);
Context.setDiagnosticsEngine(std::move(DiagOpts), &DE); Context.setDiagnosticsEngine(std::move(DiagOpts), &DE);
TestCheck TestCheck(&Context); TestCheck TestCheck(&Context);
@ -410,7 +412,8 @@ TEST(ValidConfiguration, ValidEnumOptions) {
ClangTidyGlobalOptions(), Options)); ClangTidyGlobalOptions(), Options));
ClangTidyDiagnosticConsumer DiagConsumer(Context); ClangTidyDiagnosticConsumer DiagConsumer(Context);
auto DiagOpts = std::make_unique<DiagnosticOptions>(); auto DiagOpts = std::make_unique<DiagnosticOptions>();
DiagnosticsEngine DE(new DiagnosticIDs(), *DiagOpts, &DiagConsumer, false); DiagnosticsEngine DE(DiagnosticIDs::create(), *DiagOpts, &DiagConsumer,
false);
Context.setDiagnosticsEngine(std::move(DiagOpts), &DE); Context.setDiagnosticsEngine(std::move(DiagOpts), &DE);
TestCheck TestCheck(&Context); TestCheck TestCheck(&Context);

View File

@ -97,7 +97,8 @@ runCheckOnCode(StringRef Code, std::vector<ClangTidyError> *Errors = nullptr,
ClangTidyGlobalOptions(), Options)); ClangTidyGlobalOptions(), Options));
ClangTidyDiagnosticConsumer DiagConsumer(Context); ClangTidyDiagnosticConsumer DiagConsumer(Context);
auto DiagOpts = std::make_unique<DiagnosticOptions>(); auto DiagOpts = std::make_unique<DiagnosticOptions>();
DiagnosticsEngine DE(new DiagnosticIDs(), *DiagOpts, &DiagConsumer, false); DiagnosticsEngine DE(DiagnosticIDs::create(), *DiagOpts, &DiagConsumer,
false);
Context.setDiagnosticsEngine(std::move(DiagOpts), &DE); Context.setDiagnosticsEngine(std::move(DiagOpts), &DE);
std::vector<std::string> Args(1, "clang-tidy"); std::vector<std::string> Args(1, "clang-tidy");

View File

@ -32,8 +32,7 @@ class VirtualFileHelper {
public: public:
VirtualFileHelper() VirtualFileHelper()
: Diagnostics(IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs), : Diagnostics(DiagnosticIDs::create(), DiagOpts),
DiagOpts),
DiagnosticPrinter(llvm::outs(), DiagOpts), DiagnosticPrinter(llvm::outs(), DiagOpts),
Files((FileSystemOptions())) {} Files((FileSystemOptions())) {}

View File

@ -272,6 +272,11 @@ public:
DiagnosticIDs(); DiagnosticIDs();
~DiagnosticIDs(); ~DiagnosticIDs();
// Convenience method to construct a new refcounted DiagnosticIDs.
static llvm::IntrusiveRefCntPtr<DiagnosticIDs> create() {
return llvm::makeIntrusiveRefCnt<DiagnosticIDs>();
}
/// Return an ID for a diagnostic with the specified format string and /// Return an ID for a diagnostic with the specified format string and
/// level. /// level.
/// ///

View File

@ -445,6 +445,9 @@ public:
const DiagnosticsEngine &getDiagnostics() const { return *Diagnostics; } const DiagnosticsEngine &getDiagnostics() const { return *Diagnostics; }
DiagnosticsEngine &getDiagnostics() { return *Diagnostics; } DiagnosticsEngine &getDiagnostics() { return *Diagnostics; }
llvm::IntrusiveRefCntPtr<DiagnosticsEngine> getDiagnosticsPtr() {
return Diagnostics;
}
const SourceManager &getSourceManager() const { return *SourceMgr; } const SourceManager &getSourceManager() const { return *SourceMgr; }
SourceManager &getSourceManager() { return *SourceMgr; } SourceManager &getSourceManager() { return *SourceMgr; }
@ -918,8 +921,9 @@ public:
bool IncludeCodePatterns, bool IncludeBriefComments, bool IncludeCodePatterns, bool IncludeBriefComments,
CodeCompleteConsumer &Consumer, CodeCompleteConsumer &Consumer,
std::shared_ptr<PCHContainerOperations> PCHContainerOps, std::shared_ptr<PCHContainerOperations> PCHContainerOps,
DiagnosticsEngine &Diag, LangOptions &LangOpts, llvm::IntrusiveRefCntPtr<DiagnosticsEngine> Diag,
SourceManager &SourceMgr, FileManager &FileMgr, LangOptions &LangOpts, SourceManager &SourceMgr,
FileManager &FileMgr,
SmallVectorImpl<StoredDiagnostic> &StoredDiagnostics, SmallVectorImpl<StoredDiagnostic> &StoredDiagnostics,
SmallVectorImpl<const llvm::MemoryBuffer *> &OwnedBuffers, SmallVectorImpl<const llvm::MemoryBuffer *> &OwnedBuffers,
std::unique_ptr<SyntaxOnlyAction> Act); std::unique_ptr<SyntaxOnlyAction> Act);

View File

@ -361,7 +361,7 @@ public:
} }
/// setDiagnostics - Replace the current diagnostics engine. /// setDiagnostics - Replace the current diagnostics engine.
void setDiagnostics(DiagnosticsEngine *Value); void setDiagnostics(llvm::IntrusiveRefCntPtr<DiagnosticsEngine> Value);
DiagnosticConsumer &getDiagnosticClient() const { DiagnosticConsumer &getDiagnosticClient() const {
assert(Diagnostics && Diagnostics->getClient() && assert(Diagnostics && Diagnostics->getClient() &&

View File

@ -84,7 +84,7 @@ public:
static llvm::ErrorOr<PrecompiledPreamble> static llvm::ErrorOr<PrecompiledPreamble>
Build(const CompilerInvocation &Invocation, Build(const CompilerInvocation &Invocation,
const llvm::MemoryBuffer *MainFileBuffer, PreambleBounds Bounds, const llvm::MemoryBuffer *MainFileBuffer, PreambleBounds Bounds,
DiagnosticsEngine &Diagnostics, IntrusiveRefCntPtr<DiagnosticsEngine> Diagnostics,
IntrusiveRefCntPtr<llvm::vfs::FileSystem> VFS, IntrusiveRefCntPtr<llvm::vfs::FileSystem> VFS,
std::shared_ptr<PCHContainerOperations> PCHContainerOps, std::shared_ptr<PCHContainerOperations> PCHContainerOps,
bool StoreInMemory, StringRef StoragePath, bool StoreInMemory, StringRef StoragePath,

View File

@ -2379,8 +2379,8 @@ SourceManagerForFile::SourceManagerForFile(StringRef FileName,
DiagOpts = std::make_unique<DiagnosticOptions>(); DiagOpts = std::make_unique<DiagnosticOptions>();
// This is passed to `SM` as reference, so the pointer has to be referenced // This is passed to `SM` as reference, so the pointer has to be referenced
// by `Environment` due to the same reason above. // by `Environment` due to the same reason above.
Diagnostics = std::make_unique<DiagnosticsEngine>( Diagnostics =
IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs), *DiagOpts); std::make_unique<DiagnosticsEngine>(DiagnosticIDs::create(), *DiagOpts);
SourceMgr = std::make_unique<SourceManager>(*Diagnostics, *FileMgr); SourceMgr = std::make_unique<SourceManager>(*Diagnostics, *FileMgr);
FileEntryRef FE = llvm::cantFail(FileMgr->getFileRef(FileName)); FileEntryRef FE = llvm::cantFail(FileMgr->getFileRef(FileName));
FileID ID = FileID ID =

View File

@ -563,9 +563,8 @@ CrossTranslationUnitContext::ASTLoader::loadFromDump(StringRef ASTDumpPath) {
auto DiagOpts = std::make_shared<DiagnosticOptions>(); auto DiagOpts = std::make_shared<DiagnosticOptions>();
TextDiagnosticPrinter *DiagClient = TextDiagnosticPrinter *DiagClient =
new TextDiagnosticPrinter(llvm::errs(), *DiagOpts); new TextDiagnosticPrinter(llvm::errs(), *DiagOpts);
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); auto Diags = llvm::makeIntrusiveRefCnt<DiagnosticsEngine>(
IntrusiveRefCntPtr<DiagnosticsEngine> Diags( DiagnosticIDs::create(), *DiagOpts, DiagClient);
new DiagnosticsEngine(DiagID, *DiagOpts, DiagClient));
return ASTUnit::LoadFromASTFile( return ASTUnit::LoadFromASTFile(
ASTDumpPath, CI.getPCHContainerOperations()->getRawReader(), ASTDumpPath, CI.getPCHContainerOperations()->getRawReader(),
ASTUnit::LoadEverything, DiagOpts, Diags, CI.getFileSystemOpts(), ASTUnit::LoadEverything, DiagOpts, Diags, CI.getFileSystemOpts(),
@ -607,8 +606,8 @@ CrossTranslationUnitContext::ASTLoader::loadFromSource(
auto *DiagClient = new ForwardingDiagnosticConsumer{CI.getDiagnosticClient()}; auto *DiagClient = new ForwardingDiagnosticConsumer{CI.getDiagnosticClient()};
IntrusiveRefCntPtr<DiagnosticIDs> DiagID{ IntrusiveRefCntPtr<DiagnosticIDs> DiagID{
CI.getDiagnostics().getDiagnosticIDs()}; CI.getDiagnostics().getDiagnosticIDs()};
IntrusiveRefCntPtr<DiagnosticsEngine> Diags( auto Diags = llvm::makeIntrusiveRefCnt<DiagnosticsEngine>(DiagID, *DiagOpts,
new DiagnosticsEngine{DiagID, *DiagOpts, DiagClient}); DiagClient);
return ASTUnit::LoadFromCommandLine( return ASTUnit::LoadFromCommandLine(
CommandLineArgs.begin(), (CommandLineArgs.end()), CommandLineArgs.begin(), (CommandLineArgs.end()),

View File

@ -41,10 +41,10 @@ void ASTMergeAction::ExecuteAction() {
auto SharedState = std::make_shared<ASTImporterSharedState>( auto SharedState = std::make_shared<ASTImporterSharedState>(
*CI.getASTContext().getTranslationUnitDecl()); *CI.getASTContext().getTranslationUnitDecl());
for (unsigned I = 0, N = ASTFiles.size(); I != N; ++I) { for (unsigned I = 0, N = ASTFiles.size(); I != N; ++I) {
IntrusiveRefCntPtr<DiagnosticsEngine> Diags(new DiagnosticsEngine( auto Diags = llvm::makeIntrusiveRefCnt<DiagnosticsEngine>(
DiagIDs, CI.getDiagnosticOpts(), DiagIDs, CI.getDiagnosticOpts(),
new ForwardingDiagnosticConsumer(*CI.getDiagnostics().getClient()), new ForwardingDiagnosticConsumer(*CI.getDiagnostics().getClient()),
/*ShouldOwnClient=*/true)); /*ShouldOwnClient=*/true);
std::unique_ptr<ASTUnit> Unit = ASTUnit::LoadFromASTFile( std::unique_ptr<ASTUnit> Unit = ASTUnit::LoadFromASTFile(
ASTFiles[I], CI.getPCHContainerReader(), ASTUnit::LoadEverything, ASTFiles[I], CI.getPCHContainerReader(), ASTUnit::LoadEverything,
nullptr, Diags, CI.getFileSystemOpts(), CI.getHeaderSearchOpts()); nullptr, Diags, CI.getFileSystemOpts(), CI.getHeaderSearchOpts());

View File

@ -1204,7 +1204,7 @@ bool ASTUnit::Parse(std::shared_ptr<PCHContainerOperations> PCHContainerOps,
// Set up diagnostics, capturing any diagnostics that would // Set up diagnostics, capturing any diagnostics that would
// otherwise be dropped. // otherwise be dropped.
Clang->setDiagnostics(&getDiagnostics()); Clang->setDiagnostics(getDiagnosticsPtr());
// Create the target instance. // Create the target instance.
if (!Clang->createTarget()) if (!Clang->createTarget())
@ -1424,7 +1424,7 @@ ASTUnit::getMainBufferWithPrecompiledPreamble(
PreambleInvocationIn.getFrontendOpts().SkipFunctionBodies = true; PreambleInvocationIn.getFrontendOpts().SkipFunctionBodies = true;
llvm::ErrorOr<PrecompiledPreamble> NewPreamble = PrecompiledPreamble::Build( llvm::ErrorOr<PrecompiledPreamble> NewPreamble = PrecompiledPreamble::Build(
PreambleInvocationIn, MainFileBuffer.get(), Bounds, *Diagnostics, VFS, PreambleInvocationIn, MainFileBuffer.get(), Bounds, Diagnostics, VFS,
PCHContainerOps, StorePreamblesInMemory, PreambleStoragePath, PCHContainerOps, StorePreamblesInMemory, PreambleStoragePath,
Callbacks); Callbacks);
@ -1624,7 +1624,7 @@ ASTUnit *ASTUnit::LoadFromCompilerInvocationAction(
// Set up diagnostics, capturing any diagnostics that would // Set up diagnostics, capturing any diagnostics that would
// otherwise be dropped. // otherwise be dropped.
Clang->setDiagnostics(&AST->getDiagnostics()); Clang->setDiagnostics(AST->getDiagnosticsPtr());
// Create the target instance. // Create the target instance.
if (!Clang->createTarget()) if (!Clang->createTarget())
@ -2209,8 +2209,9 @@ void ASTUnit::CodeComplete(
bool IncludeCodePatterns, bool IncludeBriefComments, bool IncludeCodePatterns, bool IncludeBriefComments,
CodeCompleteConsumer &Consumer, CodeCompleteConsumer &Consumer,
std::shared_ptr<PCHContainerOperations> PCHContainerOps, std::shared_ptr<PCHContainerOperations> PCHContainerOps,
DiagnosticsEngine &Diag, LangOptions &LangOpts, SourceManager &SourceMgr, llvm::IntrusiveRefCntPtr<DiagnosticsEngine> Diag, LangOptions &LangOpts,
FileManager &FileMgr, SmallVectorImpl<StoredDiagnostic> &StoredDiagnostics, SourceManager &SourceMgr, FileManager &FileMgr,
SmallVectorImpl<StoredDiagnostic> &StoredDiagnostics,
SmallVectorImpl<const llvm::MemoryBuffer *> &OwnedBuffers, SmallVectorImpl<const llvm::MemoryBuffer *> &OwnedBuffers,
std::unique_ptr<SyntaxOnlyAction> Act) { std::unique_ptr<SyntaxOnlyAction> Act) {
if (!Invocation) if (!Invocation)
@ -2259,11 +2260,11 @@ void ASTUnit::CodeComplete(
std::string(Clang->getFrontendOpts().Inputs[0].getFile()); std::string(Clang->getFrontendOpts().Inputs[0].getFile());
// Set up diagnostics, capturing any diagnostics produced. // Set up diagnostics, capturing any diagnostics produced.
Clang->setDiagnostics(&Diag); Clang->setDiagnostics(Diag);
CaptureDroppedDiagnostics Capture(CaptureDiagsKind::All, CaptureDroppedDiagnostics Capture(CaptureDiagsKind::All,
Clang->getDiagnostics(), Clang->getDiagnostics(),
&StoredDiagnostics, nullptr); &StoredDiagnostics, nullptr);
ProcessWarningOptions(Diag, Inv.getDiagnosticOpts(), ProcessWarningOptions(*Diag, Inv.getDiagnosticOpts(),
FileMgr.getVirtualFileSystem()); FileMgr.getVirtualFileSystem());
// Create the target instance. // Create the target instance.

View File

@ -118,13 +118,12 @@ IntrusiveRefCntPtr<ExternalSemaSource> clang::createChainedIncludesSource(
TextDiagnosticPrinter *DiagClient = TextDiagnosticPrinter *DiagClient =
new TextDiagnosticPrinter(llvm::errs(), CI.getDiagnosticOpts()); new TextDiagnosticPrinter(llvm::errs(), CI.getDiagnosticOpts());
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); auto Diags = llvm::makeIntrusiveRefCnt<DiagnosticsEngine>(
IntrusiveRefCntPtr<DiagnosticsEngine> Diags( DiagnosticIDs::create(), CI.getDiagnosticOpts(), DiagClient);
new DiagnosticsEngine(DiagID, CI.getDiagnosticOpts(), DiagClient));
auto Clang = std::make_unique<CompilerInstance>( auto Clang = std::make_unique<CompilerInstance>(
std::move(CInvok), CI.getPCHContainerOperations()); std::move(CInvok), CI.getPCHContainerOperations());
Clang->setDiagnostics(Diags.get()); Clang->setDiagnostics(Diags);
Clang->setTarget(TargetInfo::CreateTargetInfo( Clang->setTarget(TargetInfo::CreateTargetInfo(
Clang->getDiagnostics(), Clang->getInvocation().getTargetOpts())); Clang->getDiagnostics(), Clang->getInvocation().getTargetOpts()));
Clang->createFileManager(); Clang->createFileManager();

View File

@ -87,8 +87,9 @@ bool CompilerInstance::shouldBuildGlobalModuleIndex() const {
!DisableGeneratingGlobalModuleIndex; !DisableGeneratingGlobalModuleIndex;
} }
void CompilerInstance::setDiagnostics(DiagnosticsEngine *Value) { void CompilerInstance::setDiagnostics(
Diagnostics = Value; llvm::IntrusiveRefCntPtr<DiagnosticsEngine> Value) {
Diagnostics = std::move(Value);
} }
void CompilerInstance::setVerboseOutputStream(raw_ostream &Value) { void CompilerInstance::setVerboseOutputStream(raw_ostream &Value) {
@ -345,9 +346,8 @@ IntrusiveRefCntPtr<DiagnosticsEngine> CompilerInstance::createDiagnostics(
llvm::vfs::FileSystem &VFS, DiagnosticOptions &Opts, llvm::vfs::FileSystem &VFS, DiagnosticOptions &Opts,
DiagnosticConsumer *Client, bool ShouldOwnClient, DiagnosticConsumer *Client, bool ShouldOwnClient,
const CodeGenOptions *CodeGenOpts) { const CodeGenOptions *CodeGenOpts) {
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); auto Diags = llvm::makeIntrusiveRefCnt<DiagnosticsEngine>(
IntrusiveRefCntPtr<DiagnosticsEngine> Diags( DiagnosticIDs::create(), Opts);
new DiagnosticsEngine(DiagID, Opts));
// Create the diagnostic client for reporting errors or for // Create the diagnostic client for reporting errors or for
// implementing -verify. // implementing -verify.

View File

@ -826,7 +826,7 @@ static bool RoundTrip(ParseFn Parse, GenerateFn Generate,
// Setup a dummy DiagnosticsEngine. // Setup a dummy DiagnosticsEngine.
DiagnosticOptions DummyDiagOpts; DiagnosticOptions DummyDiagOpts;
DiagnosticsEngine DummyDiags(new DiagnosticIDs(), DummyDiagOpts); DiagnosticsEngine DummyDiags(DiagnosticIDs::create(), DummyDiagOpts);
DummyDiags.setClient(new TextDiagnosticBuffer()); DummyDiags.setClient(new TextDiagnosticBuffer());
// Run the first parse on the original arguments with the dummy invocation and // Run the first parse on the original arguments with the dummy invocation and
@ -2685,7 +2685,7 @@ bool clang::ParseDiagnosticArgs(DiagnosticOptions &Opts, ArgList &Args,
std::optional<DiagnosticsEngine> IgnoringDiags; std::optional<DiagnosticsEngine> IgnoringDiags;
if (!Diags) { if (!Diags) {
IgnoringDiagOpts.emplace(); IgnoringDiagOpts.emplace();
IgnoringDiags.emplace(new DiagnosticIDs(), *IgnoringDiagOpts, IgnoringDiags.emplace(DiagnosticIDs::create(), *IgnoringDiagOpts,
new IgnoringDiagConsumer()); new IgnoringDiagConsumer());
Diags = &*IgnoringDiags; Diags = &*IgnoringDiags;
} }

View File

@ -763,11 +763,11 @@ bool FrontendAction::BeginSourceFile(CompilerInstance &CI,
// If we're replaying the build of an AST file, import it and set up // If we're replaying the build of an AST file, import it and set up
// the initial state from its build. // the initial state from its build.
if (ReplayASTFile) { if (ReplayASTFile) {
IntrusiveRefCntPtr<DiagnosticsEngine> Diags(&CI.getDiagnostics()); IntrusiveRefCntPtr<DiagnosticsEngine> Diags = CI.getDiagnosticsPtr();
// The AST unit populates its own diagnostics engine rather than ours. // The AST unit populates its own diagnostics engine rather than ours.
IntrusiveRefCntPtr<DiagnosticsEngine> ASTDiags(new DiagnosticsEngine( auto ASTDiags = llvm::makeIntrusiveRefCnt<DiagnosticsEngine>(
Diags->getDiagnosticIDs(), Diags->getDiagnosticOptions())); Diags->getDiagnosticIDs(), Diags->getDiagnosticOptions());
ASTDiags->setClient(Diags->getClient(), /*OwnsClient*/false); ASTDiags->setClient(Diags->getClient(), /*OwnsClient*/false);
// FIXME: What if the input is a memory buffer? // FIXME: What if the input is a memory buffer?
@ -835,7 +835,7 @@ bool FrontendAction::BeginSourceFile(CompilerInstance &CI,
assert(hasASTFileSupport() && assert(hasASTFileSupport() &&
"This action does not have AST file support!"); "This action does not have AST file support!");
IntrusiveRefCntPtr<DiagnosticsEngine> Diags(&CI.getDiagnostics()); IntrusiveRefCntPtr<DiagnosticsEngine> Diags = CI.getDiagnosticsPtr();
// FIXME: What if the input is a memory buffer? // FIXME: What if the input is a memory buffer?
StringRef InputFile = Input.getFile(); StringRef InputFile = Input.getFile();

View File

@ -412,7 +412,7 @@ PrecompiledPreamble::operator=(PrecompiledPreamble &&) = default;
llvm::ErrorOr<PrecompiledPreamble> PrecompiledPreamble::Build( llvm::ErrorOr<PrecompiledPreamble> PrecompiledPreamble::Build(
const CompilerInvocation &Invocation, const CompilerInvocation &Invocation,
const llvm::MemoryBuffer *MainFileBuffer, PreambleBounds Bounds, const llvm::MemoryBuffer *MainFileBuffer, PreambleBounds Bounds,
DiagnosticsEngine &Diagnostics, IntrusiveRefCntPtr<DiagnosticsEngine> Diagnostics,
IntrusiveRefCntPtr<llvm::vfs::FileSystem> VFS, IntrusiveRefCntPtr<llvm::vfs::FileSystem> VFS,
std::shared_ptr<PCHContainerOperations> PCHContainerOps, bool StoreInMemory, std::shared_ptr<PCHContainerOperations> PCHContainerOps, bool StoreInMemory,
StringRef StoragePath, PreambleCallbacks &Callbacks) { StringRef StoragePath, PreambleCallbacks &Callbacks) {
@ -461,7 +461,7 @@ llvm::ErrorOr<PrecompiledPreamble> PrecompiledPreamble::Build(
llvm::CrashRecoveryContextCleanupRegistrar<CompilerInstance> CICleanup( llvm::CrashRecoveryContextCleanupRegistrar<CompilerInstance> CICleanup(
Clang.get()); Clang.get());
Clang->setDiagnostics(&Diagnostics); Clang->setDiagnostics(Diagnostics);
// Create the target instance. // Create the target instance.
if (!Clang->createTarget()) if (!Clang->createTarget())
@ -476,18 +476,18 @@ llvm::ErrorOr<PrecompiledPreamble> PrecompiledPreamble::Build(
} }
// Clear out old caches and data. // Clear out old caches and data.
Diagnostics.Reset(); Diagnostics->Reset();
ProcessWarningOptions(Diagnostics, Clang->getDiagnosticOpts(), *VFS); ProcessWarningOptions(*Diagnostics, Clang->getDiagnosticOpts(), *VFS);
VFS = VFS = createVFSFromCompilerInvocation(Clang->getInvocation(), *Diagnostics,
createVFSFromCompilerInvocation(Clang->getInvocation(), Diagnostics, VFS); VFS);
// Create a file manager object to provide access to and cache the filesystem. // Create a file manager object to provide access to and cache the filesystem.
Clang->setFileManager(new FileManager(Clang->getFileSystemOpts(), VFS)); Clang->setFileManager(new FileManager(Clang->getFileSystemOpts(), VFS));
// Create the source manager. // Create the source manager.
Clang->setSourceManager( Clang->setSourceManager(
new SourceManager(Diagnostics, Clang->getFileManager())); new SourceManager(*Diagnostics, Clang->getFileManager()));
auto PreambleDepCollector = std::make_shared<PreambleDependencyCollector>(); auto PreambleDepCollector = std::make_shared<PreambleDependencyCollector>();
Clang->addDependencyCollector(PreambleDepCollector); Clang->addDependencyCollector(PreambleDepCollector);

View File

@ -753,10 +753,9 @@ DiagnosticsEngine *SDiagsWriter::getMetaDiags() {
// to be distinct from the engine the writer was being added to and would // to be distinct from the engine the writer was being added to and would
// normally not be used. // normally not be used.
if (!State->MetaDiagnostics) { if (!State->MetaDiagnostics) {
IntrusiveRefCntPtr<DiagnosticIDs> IDs(new DiagnosticIDs());
auto Client = new TextDiagnosticPrinter(llvm::errs(), State->DiagOpts); auto Client = new TextDiagnosticPrinter(llvm::errs(), State->DiagOpts);
State->MetaDiagnostics = State->MetaDiagnostics = std::make_unique<DiagnosticsEngine>(
std::make_unique<DiagnosticsEngine>(IDs, State->DiagOpts, Client); DiagnosticIDs::create(), State->DiagOpts, Client);
} }
return State->MetaDiagnostics.get(); return State->MetaDiagnostics.get();
} }

View File

@ -380,7 +380,7 @@ void ReplCodeCompleter::codeComplete(CompilerInstance *InterpCI,
AU->setOwnsRemappedFileBuffers(false); AU->setOwnsRemappedFileBuffers(false);
AU->CodeComplete(CodeCompletionFileName, 1, Col, RemappedFiles, false, false, AU->CodeComplete(CodeCompletionFileName, 1, Col, RemappedFiles, false, false,
false, consumer, false, consumer,
std::make_shared<clang::PCHContainerOperations>(), *diag, std::make_shared<clang::PCHContainerOperations>(), diag,
InterpCI->getLangOpts(), AU->getSourceManager(), InterpCI->getLangOpts(), AU->getSourceManager(),
AU->getFileManager(), sd, tb, std::move(Act)); AU->getFileManager(), sd, tb, std::move(Act));
} }

View File

@ -86,7 +86,6 @@ GetCC1Arguments(DiagnosticsEngine *Diagnostics,
static llvm::Expected<std::unique_ptr<CompilerInstance>> static llvm::Expected<std::unique_ptr<CompilerInstance>>
CreateCI(const llvm::opt::ArgStringList &Argv) { CreateCI(const llvm::opt::ArgStringList &Argv) {
std::unique_ptr<CompilerInstance> Clang(new CompilerInstance()); std::unique_ptr<CompilerInstance> Clang(new CompilerInstance());
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs());
// Register the support for object-file-wrapped Clang modules. // Register the support for object-file-wrapped Clang modules.
// FIXME: Clang should register these container operations automatically. // FIXME: Clang should register these container operations automatically.
@ -98,7 +97,7 @@ CreateCI(const llvm::opt::ArgStringList &Argv) {
// a well formed diagnostic object. // a well formed diagnostic object.
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
TextDiagnosticBuffer *DiagsBuffer = new TextDiagnosticBuffer; TextDiagnosticBuffer *DiagsBuffer = new TextDiagnosticBuffer;
DiagnosticsEngine Diags(DiagID, DiagOpts, DiagsBuffer); DiagnosticsEngine Diags(DiagnosticIDs::create(), DiagOpts, DiagsBuffer);
bool Success = CompilerInvocation::CreateFromArgs( bool Success = CompilerInvocation::CreateFromArgs(
Clang->getInvocation(), llvm::ArrayRef(Argv.begin(), Argv.size()), Diags); Clang->getInvocation(), llvm::ArrayRef(Argv.begin(), Argv.size()), Diags);
@ -174,11 +173,10 @@ IncrementalCompilerBuilder::create(std::string TT,
// Buffer diagnostics from argument parsing so that we can output them using a // Buffer diagnostics from argument parsing so that we can output them using a
// well formed diagnostic object. // well formed diagnostic object.
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs());
std::unique_ptr<DiagnosticOptions> DiagOpts = std::unique_ptr<DiagnosticOptions> DiagOpts =
CreateAndPopulateDiagOpts(ClangArgv); CreateAndPopulateDiagOpts(ClangArgv);
TextDiagnosticBuffer *DiagsBuffer = new TextDiagnosticBuffer; TextDiagnosticBuffer *DiagsBuffer = new TextDiagnosticBuffer;
DiagnosticsEngine Diags(DiagID, *DiagOpts, DiagsBuffer); DiagnosticsEngine Diags(DiagnosticIDs::create(), *DiagOpts, DiagsBuffer);
driver::Driver Driver(/*MainBinaryName=*/ClangArgv[0], TT, Diags); driver::Driver Driver(/*MainBinaryName=*/ClangArgv[0], TT, Diags);
Driver.setCheckInputsExist(false); // the input comes from mem buffers Driver.setCheckInputsExist(false); // the input comes from mem buffers

View File

@ -677,8 +677,7 @@ bool PCHValidator::ReadDiagnosticOptions(DiagnosticOptions &DiagOpts,
bool Complain) { bool Complain) {
DiagnosticsEngine &ExistingDiags = PP.getDiagnostics(); DiagnosticsEngine &ExistingDiags = PP.getDiagnostics();
IntrusiveRefCntPtr<DiagnosticIDs> DiagIDs(ExistingDiags.getDiagnosticIDs()); IntrusiveRefCntPtr<DiagnosticIDs> DiagIDs(ExistingDiags.getDiagnosticIDs());
IntrusiveRefCntPtr<DiagnosticsEngine> Diags( auto Diags = llvm::makeIntrusiveRefCnt<DiagnosticsEngine>(DiagIDs, DiagOpts);
new DiagnosticsEngine(DiagIDs, DiagOpts));
// This should never fail, because we would have processed these options // This should never fail, because we would have processed these options
// before writing them to an ASTFile. // before writing them to an ASTFile.
ProcessWarningOptions(*Diags, DiagOpts, ProcessWarningOptions(*Diags, DiagOpts,

View File

@ -241,9 +241,8 @@ static bool stripPositionalArgs(std::vector<const char *> Args,
llvm::raw_string_ostream Output(ErrorMsg); llvm::raw_string_ostream Output(ErrorMsg);
TextDiagnosticPrinter DiagnosticPrinter(Output, DiagOpts); TextDiagnosticPrinter DiagnosticPrinter(Output, DiagOpts);
UnusedInputDiagConsumer DiagClient(DiagnosticPrinter); UnusedInputDiagConsumer DiagClient(DiagnosticPrinter);
DiagnosticsEngine Diagnostics( DiagnosticsEngine Diagnostics(DiagnosticIDs::create(), DiagOpts, &DiagClient,
IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs()), DiagOpts, false);
&DiagClient, false);
// The clang executable path isn't required since the jobs the driver builds // The clang executable path isn't required since the jobs the driver builds
// will not be executed. // will not be executed.

View File

@ -585,8 +585,7 @@ llvm::Expected<std::string> applyAllReplacements(StringRef Code,
llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>(); llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>();
FileManager Files(FileSystemOptions(), InMemoryFileSystem); FileManager Files(FileSystemOptions(), InMemoryFileSystem);
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diagnostics( DiagnosticsEngine Diagnostics(DiagnosticIDs::create(), DiagOpts);
IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs), DiagOpts);
SourceManager SourceMgr(Diagnostics, Files); SourceManager SourceMgr(Diagnostics, Files);
Rewriter Rewrite(SourceMgr, LangOptions()); Rewriter Rewrite(SourceMgr, LangOptions());
InMemoryFileSystem->addFile( InMemoryFileSystem->addFile(

View File

@ -39,9 +39,8 @@ int RefactoringTool::runAndSave(FrontendActionFactory *ActionFactory) {
LangOptions DefaultLangOptions; LangOptions DefaultLangOptions;
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
TextDiagnosticPrinter DiagnosticPrinter(llvm::errs(), DiagOpts); TextDiagnosticPrinter DiagnosticPrinter(llvm::errs(), DiagOpts);
DiagnosticsEngine Diagnostics( DiagnosticsEngine Diagnostics(DiagnosticIDs::create(), DiagOpts,
IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs()), DiagOpts, &DiagnosticPrinter, false);
&DiagnosticPrinter, false);
SourceManager Sources(Diagnostics, getFiles()); SourceManager Sources(Diagnostics, getFiles());
Rewriter Rewrite(Sources, DefaultLangOptions); Rewriter Rewrite(Sources, DefaultLangOptions);

View File

@ -134,10 +134,9 @@ GetDiagnosticsEngine(DiagnosticOptions &DiagOpts) {
TextDiagnosticPrinter *DiagClient = TextDiagnosticPrinter *DiagClient =
new TextDiagnosticPrinter(llvm::errs(), DiagOpts); new TextDiagnosticPrinter(llvm::errs(), DiagOpts);
DiagClient->setPrefix("clang-extdef-mappping"); DiagClient->setPrefix("clang-extdef-mappping");
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs());
IntrusiveRefCntPtr<DiagnosticsEngine> DiagEngine( auto DiagEngine = llvm::makeIntrusiveRefCnt<DiagnosticsEngine>(
new DiagnosticsEngine(DiagID, DiagOpts, DiagClient)); DiagnosticIDs::create(), DiagOpts, DiagClient);
Diags.swap(DiagEngine); Diags.swap(DiagEngine);
// Retain this one time so it's not destroyed by ASTUnit::LoadFromASTFile // Retain this one time so it's not destroyed by ASTUnit::LoadFromASTFile

View File

@ -241,8 +241,7 @@ static bool fillRanges(MemoryBuffer *Code,
makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>(); makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>();
FileManager Files(FileSystemOptions(), InMemoryFileSystem); FileManager Files(FileSystemOptions(), InMemoryFileSystem);
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diagnostics( DiagnosticsEngine Diagnostics(DiagnosticIDs::create(), DiagOpts);
IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs), DiagOpts);
SourceManager Sources(Diagnostics, Files); SourceManager Sources(Diagnostics, Files);
const auto ID = createInMemoryFile("<irrelevant>", *Code, Sources, Files, const auto ID = createInMemoryFile("<irrelevant>", *Code, Sources, Files,
InMemoryFileSystem.get()); InMemoryFileSystem.get());
@ -517,9 +516,8 @@ static bool format(StringRef FileName, bool ErrorOnIncompleteFormat = false) {
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
ClangFormatDiagConsumer IgnoreDiagnostics; ClangFormatDiagConsumer IgnoreDiagnostics;
DiagnosticsEngine Diagnostics( DiagnosticsEngine Diagnostics(DiagnosticIDs::create(), DiagOpts,
IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs), DiagOpts, &IgnoreDiagnostics, false);
&IgnoreDiagnostics, false);
SourceManager Sources(Diagnostics, Files); SourceManager Sources(Diagnostics, Files);
FileID ID = createInMemoryFile(AssumedFileName, *Code, Sources, Files, FileID ID = createInMemoryFile(AssumedFileName, *Code, Sources, Files,
InMemoryFileSystem.get()); InMemoryFileSystem.get());

View File

@ -33,9 +33,8 @@ void clang_fuzzer::HandleCXX(const std::string &S,
new FileManager(FileSystemOptions())); new FileManager(FileSystemOptions()));
IgnoringDiagConsumer Diags; IgnoringDiagConsumer Diags;
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diagnostics( DiagnosticsEngine Diagnostics(DiagnosticIDs::create(), DiagOpts, &Diags,
IntrusiveRefCntPtr<clang::DiagnosticIDs>(new DiagnosticIDs()), DiagOpts, false);
&Diags, false);
std::unique_ptr<clang::CompilerInvocation> Invocation( std::unique_ptr<clang::CompilerInvocation> Invocation(
tooling::newInvocation(&Diagnostics, CC1Args, /*BinaryName=*/nullptr)); tooling::newInvocation(&Diagnostics, CC1Args, /*BinaryName=*/nullptr));
std::unique_ptr<llvm::MemoryBuffer> Input = std::unique_ptr<llvm::MemoryBuffer> Input =
@ -49,4 +48,3 @@ void clang_fuzzer::HandleCXX(const std::string &S,
action->runInvocation(std::move(Invocation), Files.get(), PCHContainerOps, action->runInvocation(std::move(Invocation), Files.get(), PCHContainerOps,
&Diags); &Diags);
} }

View File

@ -77,8 +77,8 @@ static bool run(ArrayRef<const char *> Args, const char *ProgName) {
ArrayRef(Args).slice(1), MissingArgIndex, MissingArgCount); ArrayRef(Args).slice(1), MissingArgIndex, MissingArgCount);
ParseDiagnosticArgs(DiagOpts, ParsedArgs); ParseDiagnosticArgs(DiagOpts, ParsedArgs);
IntrusiveRefCntPtr<DiagnosticsEngine> Diag = new clang::DiagnosticsEngine( auto Diag = llvm::makeIntrusiveRefCnt<clang::DiagnosticsEngine>(
new clang::DiagnosticIDs(), DiagOpts, clang::DiagnosticIDs::create(), DiagOpts,
new clang::TextDiagnosticPrinter(llvm::errs(), DiagOpts)); new clang::TextDiagnosticPrinter(llvm::errs(), DiagOpts));
// Create file manager for all file operations and holding in-memory generated // Create file manager for all file operations and holding in-memory generated

View File

@ -55,7 +55,6 @@ static char getCharForLevel(DiagnosticsEngine::Level Level) {
static IntrusiveRefCntPtr<DiagnosticsEngine> static IntrusiveRefCntPtr<DiagnosticsEngine>
createDiagnostics(unsigned int argc, char **argv) { createDiagnostics(unsigned int argc, char **argv) {
IntrusiveRefCntPtr<DiagnosticIDs> DiagIDs(new DiagnosticIDs());
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
// Buffer diagnostics from argument parsing so that we can output them using a // Buffer diagnostics from argument parsing so that we can output them using a
@ -67,7 +66,8 @@ createDiagnostics(unsigned int argc, char **argv) {
Args.push_back("diagtool"); Args.push_back("diagtool");
Args.append(argv, argv + argc); Args.append(argv, argv + argc);
CreateInvocationOptions CIOpts; CreateInvocationOptions CIOpts;
CIOpts.Diags = new DiagnosticsEngine(DiagIDs, DiagOpts, DiagsBuffer); CIOpts.Diags = llvm::makeIntrusiveRefCnt<DiagnosticsEngine>(
DiagnosticIDs::create(), DiagOpts, DiagsBuffer);
std::unique_ptr<CompilerInvocation> Invocation = std::unique_ptr<CompilerInvocation> Invocation =
createInvocation(Args, CIOpts); createInvocation(Args, CIOpts);
if (!Invocation) if (!Invocation)

View File

@ -32,7 +32,7 @@ public:
static bool isIgnored(unsigned DiagID) { static bool isIgnored(unsigned DiagID) {
// FIXME: This feels like a hack. // FIXME: This feels like a hack.
static DiagnosticOptions DiagOpts; static DiagnosticOptions DiagOpts;
static clang::DiagnosticsEngine Diags(new DiagnosticIDs, DiagOpts); static clang::DiagnosticsEngine Diags(DiagnosticIDs::create(), DiagOpts);
return Diags.isIgnored(DiagID, SourceLocation()); return Diags.isIgnored(DiagID, SourceLocation());
} }

View File

@ -217,7 +217,7 @@ static int PrintEnabledExtensions(const TargetOptions& TargetOpts) {
int cc1_main(ArrayRef<const char *> Argv, const char *Argv0, void *MainAddr) { int cc1_main(ArrayRef<const char *> Argv, const char *Argv0, void *MainAddr) {
ensureSufficientStack(); ensureSufficientStack();
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); IntrusiveRefCntPtr<DiagnosticIDs> DiagID = DiagnosticIDs::create();
// Register the support for object-file-wrapped Clang modules. // Register the support for object-file-wrapped Clang modules.
auto PCHOps = std::make_shared<PCHContainerOperations>(); auto PCHOps = std::make_shared<PCHContainerOperations>();

View File

@ -662,8 +662,7 @@ int cc1as_main(ArrayRef<const char *> Argv, const char *Argv0, void *MainAddr) {
TextDiagnosticPrinter *DiagClient = TextDiagnosticPrinter *DiagClient =
new TextDiagnosticPrinter(errs(), DiagOpts); new TextDiagnosticPrinter(errs(), DiagOpts);
DiagClient->setPrefix("clang -cc1as"); DiagClient->setPrefix("clang -cc1as");
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); DiagnosticsEngine Diags(DiagnosticIDs::create(), DiagOpts, DiagClient);
DiagnosticsEngine Diags(DiagID, DiagOpts, DiagClient);
// Set an error handler, so that any LLVM backend diagnostics go through our // Set an error handler, so that any LLVM backend diagnostics go through our
// error handler. // error handler.

View File

@ -119,8 +119,8 @@ generateReproducerForInvocationArguments(ArrayRef<const char *> Argv,
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); DiagnosticsEngine Diags(DiagnosticIDs::create(), DiagOpts,
DiagnosticsEngine Diags(DiagID, DiagOpts, new IgnoringDiagConsumer()); new IgnoringDiagConsumer());
auto VFS = llvm::vfs::getRealFileSystem(); auto VFS = llvm::vfs::getRealFileSystem();
ProcessWarningOptions(Diags, DiagOpts, *VFS, /*ReportDiags=*/false); ProcessWarningOptions(Diags, DiagOpts, *VFS, /*ReportDiags=*/false);
Driver TheDriver(ToolContext.Path, llvm::sys::getDefaultTargetTriple(), Diags, Driver TheDriver(ToolContext.Path, llvm::sys::getDefaultTargetTriple(), Diags,

View File

@ -331,9 +331,7 @@ int clang_main(int Argc, char **Argv, const llvm::ToolContext &ToolContext) {
new TextDiagnosticPrinter(llvm::errs(), *DiagOpts); new TextDiagnosticPrinter(llvm::errs(), *DiagOpts);
FixupDiagPrefixExeName(DiagClient, ProgName); FixupDiagPrefixExeName(DiagClient, ProgName);
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); DiagnosticsEngine Diags(DiagnosticIDs::create(), *DiagOpts, DiagClient);
DiagnosticsEngine Diags(DiagID, *DiagOpts, DiagClient);
if (!DiagOpts->DiagnosticSerializationFile.empty()) { if (!DiagOpts->DiagnosticSerializationFile.empty()) {
auto SerializedConsumer = auto SerializedConsumer =

View File

@ -357,8 +357,8 @@ static std::atomic<unsigned> CodeCompletionResultObjects;
AllocatedCXCodeCompleteResults::AllocatedCXCodeCompleteResults( AllocatedCXCodeCompleteResults::AllocatedCXCodeCompleteResults(
IntrusiveRefCntPtr<FileManager> FileMgr) IntrusiveRefCntPtr<FileManager> FileMgr)
: CXCodeCompleteResults(), : CXCodeCompleteResults(),
Diag(new DiagnosticsEngine( Diag(llvm::makeIntrusiveRefCnt<DiagnosticsEngine>(DiagnosticIDs::create(),
IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs), DiagOpts)), DiagOpts)),
FileMgr(std::move(FileMgr)), FileMgr(std::move(FileMgr)),
SourceMgr(new SourceManager(*Diag, *this->FileMgr)), SourceMgr(new SourceManager(*Diag, *this->FileMgr)),
CodeCompletionAllocator( CodeCompletionAllocator(
@ -763,7 +763,7 @@ clang_codeCompleteAt_Impl(CXTranslationUnit TU, const char *complete_filename,
RemappedFiles, (options & CXCodeComplete_IncludeMacros), RemappedFiles, (options & CXCodeComplete_IncludeMacros),
(options & CXCodeComplete_IncludeCodePatterns), (options & CXCodeComplete_IncludeCodePatterns),
IncludeBriefComments, Capture, IncludeBriefComments, Capture,
CXXIdx->getPCHContainerOperations(), *Results->Diag, CXXIdx->getPCHContainerOperations(), Results->Diag,
Results->LangOpts, *Results->SourceMgr, *Results->FileMgr, Results->LangOpts, *Results->SourceMgr, *Results->FileMgr,
Results->Diagnostics, Results->TemporaryBuffers, Results->Diagnostics, Results->TemporaryBuffers,
/*SyntaxOnlyAction=*/nullptr); /*SyntaxOnlyAction=*/nullptr);

View File

@ -26,14 +26,13 @@ namespace {
class ASTVectorTest : public ::testing::Test { class ASTVectorTest : public ::testing::Test {
protected: protected:
ASTVectorTest() ASTVectorTest()
: FileMgr(FileMgrOpts), DiagID(new DiagnosticIDs()), : FileMgr(FileMgrOpts),
Diags(DiagID, DiagOpts, new IgnoringDiagConsumer()), Diags(DiagnosticIDs::create(), DiagOpts, new IgnoringDiagConsumer()),
SourceMgr(Diags, FileMgr), Idents(LangOpts, nullptr), SourceMgr(Diags, FileMgr), Idents(LangOpts, nullptr),
Ctxt(LangOpts, SourceMgr, Idents, Sels, Builtins, TU_Complete) {} Ctxt(LangOpts, SourceMgr, Idents, Sels, Builtins, TU_Complete) {}
FileSystemOptions FileMgrOpts; FileSystemOptions FileMgrOpts;
FileManager FileMgr; FileManager FileMgr;
IntrusiveRefCntPtr<DiagnosticIDs> DiagID;
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diags; DiagnosticsEngine Diags;
SourceManager SourceMgr; SourceManager SourceMgr;

View File

@ -27,13 +27,12 @@ namespace {
class CommentLexerTest : public ::testing::Test { class CommentLexerTest : public ::testing::Test {
protected: protected:
CommentLexerTest() CommentLexerTest()
: FileMgr(FileMgrOpts), DiagID(new DiagnosticIDs()), : FileMgr(FileMgrOpts),
Diags(DiagID, DiagOpts, new IgnoringDiagConsumer()), Diags(DiagnosticIDs::create(), DiagOpts, new IgnoringDiagConsumer()),
SourceMgr(Diags, FileMgr), Traits(Allocator, CommentOptions()) {} SourceMgr(Diags, FileMgr), Traits(Allocator, CommentOptions()) {}
FileSystemOptions FileMgrOpts; FileSystemOptions FileMgrOpts;
FileManager FileMgr; FileManager FileMgr;
IntrusiveRefCntPtr<DiagnosticIDs> DiagID;
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diags; DiagnosticsEngine Diags;
SourceManager SourceMgr; SourceManager SourceMgr;
@ -2006,4 +2005,3 @@ TEST_F(CommentLexerTest, MultipleComments) {
} // end namespace comments } // end namespace comments
} // end namespace clang } // end namespace clang

View File

@ -33,13 +33,12 @@ const bool MY_DEBUG = true;
class CommentParserTest : public ::testing::Test { class CommentParserTest : public ::testing::Test {
protected: protected:
CommentParserTest() CommentParserTest()
: FileMgr(FileMgrOpts), DiagID(new DiagnosticIDs()), : FileMgr(FileMgrOpts),
Diags(DiagID, DiagOpts, new IgnoringDiagConsumer()), Diags(DiagnosticIDs::create(), DiagOpts, new IgnoringDiagConsumer()),
SourceMgr(Diags, FileMgr), Traits(Allocator, CommentOptions()) {} SourceMgr(Diags, FileMgr), Traits(Allocator, CommentOptions()) {}
FileSystemOptions FileMgrOpts; FileSystemOptions FileMgrOpts;
FileManager FileMgr; FileManager FileMgr;
IntrusiveRefCntPtr<DiagnosticIDs> DiagID;
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diags; DiagnosticsEngine Diags;
SourceManager SourceMgr; SourceManager SourceMgr;

View File

@ -44,7 +44,7 @@ protected:
// shouldn't matter. // shouldn't matter.
RawComment Comment(SourceMgr, CommentRange, EmptyOpts, /*Merged=*/true); RawComment Comment(SourceMgr, CommentRange, EmptyOpts, /*Merged=*/true);
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diags(new DiagnosticIDs, DiagOpts); DiagnosticsEngine Diags(DiagnosticIDs::create(), DiagOpts);
return Comment.getFormattedText(SourceMgr, Diags); return Comment.getFormattedText(SourceMgr, Diags);
} }
}; };

View File

@ -36,8 +36,7 @@ protected:
: InMemoryFileSystem( : InMemoryFileSystem(
llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>()), llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>()),
FileMgr(FileSystemOptions(), InMemoryFileSystem), FileMgr(FileSystemOptions(), InMemoryFileSystem),
DiagID(new DiagnosticIDs()), Diags(DiagnosticIDs::create(), DiagOpts, new IgnoringDiagConsumer()),
Diags(DiagID, DiagOpts, new IgnoringDiagConsumer()),
SourceMgr(Diags, FileMgr), TargetOpts(new TargetOptions()) { SourceMgr(Diags, FileMgr), TargetOpts(new TargetOptions()) {
TargetOpts->Triple = "x86_64-pc-linux-unknown"; TargetOpts->Triple = "x86_64-pc-linux-unknown";
Target = TargetInfo::CreateTargetInfo(Diags, *TargetOpts); Target = TargetInfo::CreateTargetInfo(Diags, *TargetOpts);
@ -46,7 +45,6 @@ protected:
IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> InMemoryFileSystem; IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> InMemoryFileSystem;
FileManager FileMgr; FileManager FileMgr;
IntrusiveRefCntPtr<DiagnosticIDs> DiagID;
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diags; DiagnosticsEngine Diags;
SourceManager SourceMgr; SourceManager SourceMgr;

View File

@ -12,13 +12,12 @@ namespace {
class UnsafeBufferUsageTest : public ::testing::Test { class UnsafeBufferUsageTest : public ::testing::Test {
protected: protected:
UnsafeBufferUsageTest() UnsafeBufferUsageTest()
: FileMgr(FileMgrOpts), DiagID(new DiagnosticIDs()), : FileMgr(FileMgrOpts),
Diags(DiagID, DiagOpts, new IgnoringDiagConsumer()), Diags(DiagnosticIDs::create(), DiagOpts, new IgnoringDiagConsumer()),
SourceMgr(Diags, FileMgr) {} SourceMgr(Diags, FileMgr) {}
FileSystemOptions FileMgrOpts; FileSystemOptions FileMgrOpts;
FileManager FileMgr; FileManager FileMgr;
IntrusiveRefCntPtr<DiagnosticIDs> DiagID;
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diags; DiagnosticsEngine Diags;
SourceManager SourceMgr; SourceManager SourceMgr;
@ -58,4 +57,4 @@ TEST_F(UnsafeBufferUsageTest, FixItHintsConflict) {
Fixes = {H1, H2, H3, MkDummyHint(2, 23) /* overlaps H1, H2, and H3 */}; Fixes = {H1, H2, H3, MkDummyHint(2, 23) /* overlaps H1, H2, and H3 */};
EXPECT_TRUE(internal::anyConflict(Fixes, SourceMgr)); EXPECT_TRUE(internal::anyConflict(Fixes, SourceMgr));
} }

View File

@ -47,7 +47,7 @@ using testing::IsEmpty;
// Check that DiagnosticErrorTrap works with SuppressAllDiagnostics. // Check that DiagnosticErrorTrap works with SuppressAllDiagnostics.
TEST(DiagnosticTest, suppressAndTrap) { TEST(DiagnosticTest, suppressAndTrap) {
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diags(new DiagnosticIDs(), DiagOpts, DiagnosticsEngine Diags(DiagnosticIDs::create(), DiagOpts,
new IgnoringDiagConsumer()); new IgnoringDiagConsumer());
Diags.setSuppressAllDiagnostics(true); Diags.setSuppressAllDiagnostics(true);
@ -78,7 +78,7 @@ TEST(DiagnosticTest, suppressAndTrap) {
TEST(DiagnosticTest, fatalsAsError) { TEST(DiagnosticTest, fatalsAsError) {
for (unsigned FatalsAsError = 0; FatalsAsError != 2; ++FatalsAsError) { for (unsigned FatalsAsError = 0; FatalsAsError != 2; ++FatalsAsError) {
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diags(new DiagnosticIDs(), DiagOpts, DiagnosticsEngine Diags(DiagnosticIDs::create(), DiagOpts,
new IgnoringDiagConsumer()); new IgnoringDiagConsumer());
Diags.setFatalsAsError(FatalsAsError); Diags.setFatalsAsError(FatalsAsError);
@ -102,7 +102,7 @@ TEST(DiagnosticTest, fatalsAsError) {
TEST(DiagnosticTest, tooManyErrorsIsAlwaysFatal) { TEST(DiagnosticTest, tooManyErrorsIsAlwaysFatal) {
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diags(new DiagnosticIDs(), DiagOpts, DiagnosticsEngine Diags(DiagnosticIDs::create(), DiagOpts,
new IgnoringDiagConsumer()); new IgnoringDiagConsumer());
Diags.setFatalsAsError(true); Diags.setFatalsAsError(true);
@ -119,7 +119,7 @@ TEST(DiagnosticTest, tooManyErrorsIsAlwaysFatal) {
// Check that soft RESET works as intended // Check that soft RESET works as intended
TEST(DiagnosticTest, softReset) { TEST(DiagnosticTest, softReset) {
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diags(new DiagnosticIDs(), DiagOpts, DiagnosticsEngine Diags(DiagnosticIDs::create(), DiagOpts,
new IgnoringDiagConsumer()); new IgnoringDiagConsumer());
unsigned numWarnings = 0U, numErrors = 0U; unsigned numWarnings = 0U, numErrors = 0U;
@ -143,7 +143,7 @@ TEST(DiagnosticTest, softReset) {
TEST(DiagnosticTest, diagnosticError) { TEST(DiagnosticTest, diagnosticError) {
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diags(new DiagnosticIDs(), DiagOpts, DiagnosticsEngine Diags(DiagnosticIDs::create(), DiagOpts,
new IgnoringDiagConsumer()); new IgnoringDiagConsumer());
PartialDiagnostic::DiagStorageAllocator Alloc; PartialDiagnostic::DiagStorageAllocator Alloc;
llvm::Expected<std::pair<int, int>> Value = DiagnosticError::create( llvm::Expected<std::pair<int, int>> Value = DiagnosticError::create(
@ -166,7 +166,7 @@ TEST(DiagnosticTest, diagnosticError) {
TEST(DiagnosticTest, storedDiagEmptyWarning) { TEST(DiagnosticTest, storedDiagEmptyWarning) {
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diags(new DiagnosticIDs(), DiagOpts); DiagnosticsEngine Diags(DiagnosticIDs::create(), DiagOpts);
class CaptureDiagnosticConsumer : public DiagnosticConsumer { class CaptureDiagnosticConsumer : public DiagnosticConsumer {
public: public:
@ -197,7 +197,7 @@ protected:
llvm::IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> FS = llvm::IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> FS =
llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>(); llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>();
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diags{new DiagnosticIDs(), DiagOpts}; DiagnosticsEngine Diags{DiagnosticIDs::create(), DiagOpts};
llvm::ArrayRef<StoredDiagnostic> diags() { llvm::ArrayRef<StoredDiagnostic> diags() {
return CaptureConsumer.StoredDiags; return CaptureConsumer.StoredDiags;

View File

@ -44,13 +44,11 @@ protected:
: InMemoryFileSystem( : InMemoryFileSystem(
llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>()), llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>()),
FileMgr(FileSystemOptions(), InMemoryFileSystem), FileMgr(FileSystemOptions(), InMemoryFileSystem),
DiagID(new DiagnosticIDs()), Diags(DiagnosticIDs::create(), DiagOpts, new IgnoringDiagConsumer()),
Diags(DiagID, DiagOpts, new IgnoringDiagConsumer()),
SourceMgr(Diags, FileMgr) {} SourceMgr(Diags, FileMgr) {}
IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> InMemoryFileSystem; IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> InMemoryFileSystem;
FileManager FileMgr; FileManager FileMgr;
IntrusiveRefCntPtr<DiagnosticIDs> DiagID;
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diags; DiagnosticsEngine Diags;
SourceManager SourceMgr; SourceManager SourceMgr;

View File

@ -40,8 +40,8 @@ namespace {
class SourceManagerTest : public ::testing::Test { class SourceManagerTest : public ::testing::Test {
protected: protected:
SourceManagerTest() SourceManagerTest()
: FileMgr(FileMgrOpts), DiagID(new DiagnosticIDs()), : FileMgr(FileMgrOpts),
Diags(DiagID, DiagOpts, new IgnoringDiagConsumer()), Diags(DiagnosticIDs::create(), DiagOpts, new IgnoringDiagConsumer()),
SourceMgr(Diags, FileMgr), TargetOpts(new TargetOptions) { SourceMgr(Diags, FileMgr), TargetOpts(new TargetOptions) {
TargetOpts->Triple = "x86_64-apple-darwin11.1.0"; TargetOpts->Triple = "x86_64-apple-darwin11.1.0";
Target = TargetInfo::CreateTargetInfo(Diags, *TargetOpts); Target = TargetInfo::CreateTargetInfo(Diags, *TargetOpts);
@ -49,7 +49,6 @@ protected:
FileSystemOptions FileMgrOpts; FileSystemOptions FileMgrOpts;
FileManager FileMgr; FileManager FileMgr;
IntrusiveRefCntPtr<DiagnosticIDs> DiagID;
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diags; DiagnosticsEngine Diags;
SourceManager SourceMgr; SourceManager SourceMgr;

View File

@ -55,8 +55,6 @@ static void validateTargetProfile(
} }
TEST(DxcModeTest, TargetProfileValidation) { TEST(DxcModeTest, TargetProfileValidation) {
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs());
auto InMemoryFileSystem = auto InMemoryFileSystem =
llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>(); llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>();
@ -65,7 +63,7 @@ TEST(DxcModeTest, TargetProfileValidation) {
auto *DiagConsumer = new SimpleDiagnosticConsumer; auto *DiagConsumer = new SimpleDiagnosticConsumer;
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diags(DiagID, DiagOpts, DiagConsumer); DiagnosticsEngine Diags(DiagnosticIDs::create(), DiagOpts, DiagConsumer);
validateTargetProfile("-Tvs_6_0", "dxilv1.0--shadermodel6.0-vertex", validateTargetProfile("-Tvs_6_0", "dxilv1.0--shadermodel6.0-vertex",
InMemoryFileSystem, Diags); InMemoryFileSystem, Diags);
@ -105,8 +103,6 @@ TEST(DxcModeTest, TargetProfileValidation) {
} }
TEST(DxcModeTest, ValidatorVersionValidation) { TEST(DxcModeTest, ValidatorVersionValidation) {
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs());
auto InMemoryFileSystem = auto InMemoryFileSystem =
llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>(); llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>();
@ -115,7 +111,7 @@ TEST(DxcModeTest, ValidatorVersionValidation) {
auto *DiagConsumer = new SimpleDiagnosticConsumer; auto *DiagConsumer = new SimpleDiagnosticConsumer;
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diags(DiagID, DiagOpts, DiagConsumer); DiagnosticsEngine Diags(DiagnosticIDs::create(), DiagOpts, DiagConsumer);
Driver TheDriver("/bin/clang", "", Diags, "", InMemoryFileSystem); Driver TheDriver("/bin/clang", "", Diags, "", InMemoryFileSystem);
std::unique_ptr<Compilation> C(TheDriver.BuildCompilation( std::unique_ptr<Compilation> C(TheDriver.BuildCompilation(
{"clang", "--driver-mode=dxc", "-Tlib_6_7", "foo.hlsl"})); {"clang", "--driver-mode=dxc", "-Tlib_6_7", "foo.hlsl"}));

View File

@ -53,7 +53,7 @@ protected:
assert(!DriverInstance && "Running twice is not allowed"); assert(!DriverInstance && "Running twice is not allowed");
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diags(new DiagnosticIDs, DiagOpts, DiagnosticsEngine Diags(DiagnosticIDs::create(), DiagOpts,
new TextDiagnosticPrinter(llvm::errs(), DiagOpts)); new TextDiagnosticPrinter(llvm::errs(), DiagOpts));
DriverInstance.emplace(ClangBinary, "x86_64-unknown-linux-gnu", Diags, DriverInstance.emplace(ClangBinary, "x86_64-unknown-linux-gnu", Diags,
"clang LLVM compiler", prepareFS(ExtraFiles)); "clang LLVM compiler", prepareFS(ExtraFiles));

View File

@ -42,13 +42,12 @@ struct SimpleDiagnosticConsumer : public clang::DiagnosticConsumer {
// for testing situations where it will only ever be used for emitting // for testing situations where it will only ever be used for emitting
// diagnostics, such as being passed to `MultilibSet::select`. // diagnostics, such as being passed to `MultilibSet::select`.
inline clang::driver::Driver diagnostic_test_driver() { inline clang::driver::Driver diagnostic_test_driver() {
llvm::IntrusiveRefCntPtr<clang::DiagnosticIDs> DiagID(
new clang::DiagnosticIDs());
auto InMemoryFileSystem = auto InMemoryFileSystem =
llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>(); llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>();
auto *DiagConsumer = new SimpleDiagnosticConsumer; auto *DiagConsumer = new SimpleDiagnosticConsumer;
clang::DiagnosticOptions DiagOpts; clang::DiagnosticOptions DiagOpts;
clang::DiagnosticsEngine Diags(DiagID, DiagOpts, DiagConsumer); clang::DiagnosticsEngine Diags(clang::DiagnosticIDs::create(), DiagOpts,
DiagConsumer);
return clang::driver::Driver("/bin/clang", "", Diags, "", InMemoryFileSystem); return clang::driver::Driver("/bin/clang", "", Diags, "", InMemoryFileSystem);
} }

View File

@ -40,7 +40,7 @@ namespace {
TEST(ToolChainTest, VFSGCCInstallation) { TEST(ToolChainTest, VFSGCCInstallation) {
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); IntrusiveRefCntPtr<DiagnosticIDs> DiagID = DiagnosticIDs::create();
struct TestDiagnosticConsumer : public DiagnosticConsumer {}; struct TestDiagnosticConsumer : public DiagnosticConsumer {};
auto InMemoryFileSystem = auto InMemoryFileSystem =
llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>(); llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>();
@ -137,7 +137,7 @@ TEST(ToolChainTest, VFSGCCInstallation) {
TEST(ToolChainTest, VFSGCCInstallationRelativeDir) { TEST(ToolChainTest, VFSGCCInstallationRelativeDir) {
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); IntrusiveRefCntPtr<DiagnosticIDs> DiagID = DiagnosticIDs::create();
struct TestDiagnosticConsumer : public DiagnosticConsumer {}; struct TestDiagnosticConsumer : public DiagnosticConsumer {};
DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer);
auto InMemoryFileSystem = auto InMemoryFileSystem =
@ -176,7 +176,7 @@ TEST(ToolChainTest, VFSGCCInstallationRelativeDir) {
TEST(ToolChainTest, VFSSolarisMultiGCCInstallation) { TEST(ToolChainTest, VFSSolarisMultiGCCInstallation) {
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); IntrusiveRefCntPtr<DiagnosticIDs> DiagID = DiagnosticIDs::create();
struct TestDiagnosticConsumer : public DiagnosticConsumer {}; struct TestDiagnosticConsumer : public DiagnosticConsumer {};
auto InMemoryFileSystem = auto InMemoryFileSystem =
llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>(); llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>();
@ -340,7 +340,7 @@ MATCHER_P(jobHasArgs, Substr, "") {
TEST(ToolChainTest, VFSGnuLibcxxPathNoSysroot) { TEST(ToolChainTest, VFSGnuLibcxxPathNoSysroot) {
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); IntrusiveRefCntPtr<DiagnosticIDs> DiagID = DiagnosticIDs::create();
struct TestDiagnosticConsumer : public DiagnosticConsumer {}; struct TestDiagnosticConsumer : public DiagnosticConsumer {};
auto InMemoryFileSystem = auto InMemoryFileSystem =
llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>(); llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>();
@ -371,7 +371,7 @@ TEST(ToolChainTest, VFSGnuLibcxxPathNoSysroot) {
TEST(ToolChainTest, DefaultDriverMode) { TEST(ToolChainTest, DefaultDriverMode) {
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); IntrusiveRefCntPtr<DiagnosticIDs> DiagID = DiagnosticIDs::create();
struct TestDiagnosticConsumer : public DiagnosticConsumer {}; struct TestDiagnosticConsumer : public DiagnosticConsumer {};
DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer);
auto InMemoryFileSystem = auto InMemoryFileSystem =
@ -402,7 +402,7 @@ TEST(ToolChainTest, DefaultDriverMode) {
EXPECT_TRUE(CLDriver.IsCLMode()); EXPECT_TRUE(CLDriver.IsCLMode());
} }
TEST(ToolChainTest, InvalidArgument) { TEST(ToolChainTest, InvalidArgument) {
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); IntrusiveRefCntPtr<DiagnosticIDs> DiagID = DiagnosticIDs::create();
struct TestDiagnosticConsumer : public DiagnosticConsumer {}; struct TestDiagnosticConsumer : public DiagnosticConsumer {};
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer);
@ -517,7 +517,7 @@ TEST(ToolChainTest, GetTargetAndMode) {
TEST(ToolChainTest, CommandOutput) { TEST(ToolChainTest, CommandOutput) {
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); IntrusiveRefCntPtr<DiagnosticIDs> DiagID = DiagnosticIDs::create();
struct TestDiagnosticConsumer : public DiagnosticConsumer {}; struct TestDiagnosticConsumer : public DiagnosticConsumer {};
DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer);
auto InMemoryFileSystem = auto InMemoryFileSystem =
@ -545,7 +545,7 @@ TEST(ToolChainTest, CommandOutput) {
TEST(ToolChainTest, PostCallback) { TEST(ToolChainTest, PostCallback) {
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); IntrusiveRefCntPtr<DiagnosticIDs> DiagID = DiagnosticIDs::create();
struct TestDiagnosticConsumer : public DiagnosticConsumer {}; struct TestDiagnosticConsumer : public DiagnosticConsumer {};
DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer);
auto InMemoryFileSystem = auto InMemoryFileSystem =
@ -598,7 +598,7 @@ TEST(ToolChainTest, UEFICallingConventionTest) {
TEST(ToolChainTest, UEFIDefaultDebugFormatTest) { TEST(ToolChainTest, UEFIDefaultDebugFormatTest) {
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); IntrusiveRefCntPtr<DiagnosticIDs> DiagID = DiagnosticIDs::create();
struct TestDiagnosticConsumer : public DiagnosticConsumer {}; struct TestDiagnosticConsumer : public DiagnosticConsumer {};
DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer);
auto InMemoryFileSystem = auto InMemoryFileSystem =
@ -640,7 +640,7 @@ struct SimpleDiagnosticConsumer : public DiagnosticConsumer {
TEST(ToolChainTest, ConfigFileSearch) { TEST(ToolChainTest, ConfigFileSearch) {
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); IntrusiveRefCntPtr<DiagnosticIDs> DiagID = DiagnosticIDs::create();
struct TestDiagnosticConsumer : public DiagnosticConsumer {}; struct TestDiagnosticConsumer : public DiagnosticConsumer {};
DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer);
auto FS = llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>(); auto FS = llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>();
@ -716,7 +716,7 @@ struct FileSystemWithError : public llvm::vfs::FileSystem {
TEST(ToolChainTest, ConfigFileError) { TEST(ToolChainTest, ConfigFileError) {
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); IntrusiveRefCntPtr<DiagnosticIDs> DiagID = DiagnosticIDs::create();
std::unique_ptr<SimpleDiagnosticConsumer> DiagConsumer( std::unique_ptr<SimpleDiagnosticConsumer> DiagConsumer(
new SimpleDiagnosticConsumer()); new SimpleDiagnosticConsumer());
DiagnosticsEngine Diags(DiagID, DiagOpts, DiagConsumer.get(), false); DiagnosticsEngine Diags(DiagID, DiagOpts, DiagConsumer.get(), false);
@ -737,7 +737,7 @@ TEST(ToolChainTest, ConfigFileError) {
TEST(ToolChainTest, BadConfigFile) { TEST(ToolChainTest, BadConfigFile) {
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); IntrusiveRefCntPtr<DiagnosticIDs> DiagID = DiagnosticIDs::create();
std::unique_ptr<SimpleDiagnosticConsumer> DiagConsumer( std::unique_ptr<SimpleDiagnosticConsumer> DiagConsumer(
new SimpleDiagnosticConsumer()); new SimpleDiagnosticConsumer());
DiagnosticsEngine Diags(DiagID, DiagOpts, DiagConsumer.get(), false); DiagnosticsEngine Diags(DiagID, DiagOpts, DiagConsumer.get(), false);
@ -810,7 +810,7 @@ TEST(ToolChainTest, BadConfigFile) {
TEST(ToolChainTest, ConfigInexistentInclude) { TEST(ToolChainTest, ConfigInexistentInclude) {
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); IntrusiveRefCntPtr<DiagnosticIDs> DiagID = DiagnosticIDs::create();
std::unique_ptr<SimpleDiagnosticConsumer> DiagConsumer( std::unique_ptr<SimpleDiagnosticConsumer> DiagConsumer(
new SimpleDiagnosticConsumer()); new SimpleDiagnosticConsumer());
DiagnosticsEngine Diags(DiagID, DiagOpts, DiagConsumer.get(), false); DiagnosticsEngine Diags(DiagID, DiagOpts, DiagConsumer.get(), false);
@ -850,7 +850,7 @@ TEST(ToolChainTest, ConfigInexistentInclude) {
TEST(ToolChainTest, ConfigRecursiveInclude) { TEST(ToolChainTest, ConfigRecursiveInclude) {
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); IntrusiveRefCntPtr<DiagnosticIDs> DiagID = DiagnosticIDs::create();
std::unique_ptr<SimpleDiagnosticConsumer> DiagConsumer( std::unique_ptr<SimpleDiagnosticConsumer> DiagConsumer(
new SimpleDiagnosticConsumer()); new SimpleDiagnosticConsumer());
DiagnosticsEngine Diags(DiagID, DiagOpts, DiagConsumer.get(), false); DiagnosticsEngine Diags(DiagID, DiagOpts, DiagConsumer.get(), false);
@ -895,7 +895,7 @@ TEST(ToolChainTest, ConfigRecursiveInclude) {
TEST(ToolChainTest, NestedConfigFile) { TEST(ToolChainTest, NestedConfigFile) {
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); IntrusiveRefCntPtr<DiagnosticIDs> DiagID = DiagnosticIDs::create();
struct TestDiagnosticConsumer : public DiagnosticConsumer {}; struct TestDiagnosticConsumer : public DiagnosticConsumer {};
DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer); DiagnosticsEngine Diags(DiagID, DiagOpts, new TestDiagnosticConsumer);
auto FS = llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>(); auto FS = llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>();

View File

@ -71,7 +71,7 @@ TEST(CompilerInstance, DefaultVFSOverlayFromInvocation) {
// Create a minimal CompilerInstance which should use the VFS we specified // Create a minimal CompilerInstance which should use the VFS we specified
// in the CompilerInvocation (as we don't explicitly set our own). // in the CompilerInvocation (as we don't explicitly set our own).
CompilerInstance Instance(std::move(CInvok)); CompilerInstance Instance(std::move(CInvok));
Instance.setDiagnostics(Diags.get()); Instance.setDiagnostics(Diags);
Instance.createFileManager(); Instance.createFileManager();
// Check if the virtual file exists which means that our VFS is used by the // Check if the virtual file exists which means that our VFS is used by the
@ -135,7 +135,7 @@ TEST(CompilerInstance, MultipleInputsCleansFileIDs) {
ASSERT_TRUE(CInvok) << "could not create compiler invocation"; ASSERT_TRUE(CInvok) << "could not create compiler invocation";
CompilerInstance Instance(std::move(CInvok)); CompilerInstance Instance(std::move(CInvok));
Instance.setDiagnostics(Diags.get()); Instance.setDiagnostics(Diags);
Instance.createFileManager(VFS); Instance.createFileManager(VFS);
// Run once for `a.cc` and then for `a.h`. This makes sure we get the same // Run once for `a.cc` and then for `a.h`. This makes sure we get the same

View File

@ -40,7 +40,7 @@ namespace {
class SearchPathTest : public ::testing::Test { class SearchPathTest : public ::testing::Test {
protected: protected:
SearchPathTest() SearchPathTest()
: Diags(new DiagnosticIDs(), DiagOpts, new IgnoringDiagConsumer()), : Diags(DiagnosticIDs::create(), DiagOpts, new IgnoringDiagConsumer()),
VFS(llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>()), VFS(llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>()),
FileMgr(FileSystemOptions(), VFS), SourceMgr(Diags, FileMgr), FileMgr(FileSystemOptions(), VFS), SourceMgr(Diags, FileMgr),
Invocation(std::make_unique<CompilerInvocation>()) {} Invocation(std::make_unique<CompilerInvocation>()) {}

View File

@ -36,9 +36,8 @@ TEST(TextDiagnostic, ShowLine) {
// Create dummy FileManager and SourceManager. // Create dummy FileManager and SourceManager.
FileSystemOptions FSOpts; FileSystemOptions FSOpts;
FileManager FileMgr(FSOpts); FileManager FileMgr(FSOpts);
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs);
DiagnosticOptions DiagEngineOpts; DiagnosticOptions DiagEngineOpts;
DiagnosticsEngine DiagEngine(DiagID, DiagEngineOpts, DiagnosticsEngine DiagEngine(DiagnosticIDs::create(), DiagEngineOpts,
new IgnoringDiagConsumer()); new IgnoringDiagConsumer());
SourceManager SrcMgr(DiagEngine, FileMgr); SourceManager SrcMgr(DiagEngine, FileMgr);

View File

@ -29,8 +29,8 @@ class HeaderSearchTest : public ::testing::Test {
protected: protected:
HeaderSearchTest() HeaderSearchTest()
: VFS(llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>()), : VFS(llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>()),
FileMgr(FileMgrOpts, VFS), DiagID(new DiagnosticIDs()), FileMgr(FileMgrOpts, VFS),
Diags(DiagID, DiagOpts, new IgnoringDiagConsumer()), Diags(DiagnosticIDs::create(), DiagOpts, new IgnoringDiagConsumer()),
SourceMgr(Diags, FileMgr), TargetOpts(new TargetOptions), SourceMgr(Diags, FileMgr), TargetOpts(new TargetOptions),
Search(HSOpts, SourceMgr, Diags, LangOpts, Target.get()) { Search(HSOpts, SourceMgr, Diags, LangOpts, Target.get()) {
TargetOpts->Triple = "x86_64-apple-darwin11.1.0"; TargetOpts->Triple = "x86_64-apple-darwin11.1.0";
@ -80,7 +80,6 @@ protected:
IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> VFS; IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> VFS;
FileSystemOptions FileMgrOpts; FileSystemOptions FileMgrOpts;
FileManager FileMgr; FileManager FileMgr;
IntrusiveRefCntPtr<DiagnosticIDs> DiagID;
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diags; DiagnosticsEngine Diags;
SourceManager SourceMgr; SourceManager SourceMgr;

View File

@ -41,8 +41,8 @@ using testing::ElementsAre;
class LexerTest : public ::testing::Test { class LexerTest : public ::testing::Test {
protected: protected:
LexerTest() LexerTest()
: FileMgr(FileMgrOpts), DiagID(new DiagnosticIDs()), : FileMgr(FileMgrOpts),
Diags(DiagID, DiagOpts, new IgnoringDiagConsumer()), Diags(DiagnosticIDs::create(), DiagOpts, new IgnoringDiagConsumer()),
SourceMgr(Diags, FileMgr), TargetOpts(new TargetOptions) { SourceMgr(Diags, FileMgr), TargetOpts(new TargetOptions) {
TargetOpts->Triple = "x86_64-apple-darwin11.1.0"; TargetOpts->Triple = "x86_64-apple-darwin11.1.0";
Target = TargetInfo::CreateTargetInfo(Diags, *TargetOpts); Target = TargetInfo::CreateTargetInfo(Diags, *TargetOpts);
@ -102,7 +102,6 @@ protected:
FileSystemOptions FileMgrOpts; FileSystemOptions FileMgrOpts;
FileManager FileMgr; FileManager FileMgr;
IntrusiveRefCntPtr<DiagnosticIDs> DiagID;
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diags; DiagnosticsEngine Diags;
SourceManager SourceMgr; SourceManager SourceMgr;

View File

@ -54,8 +54,8 @@ public:
class ModuleDeclStateTest : public ::testing::Test { class ModuleDeclStateTest : public ::testing::Test {
protected: protected:
ModuleDeclStateTest() ModuleDeclStateTest()
: FileMgr(FileMgrOpts), DiagID(new DiagnosticIDs()), : FileMgr(FileMgrOpts),
Diags(DiagID, DiagOpts, new IgnoringDiagConsumer()), Diags(DiagnosticIDs::create(), DiagOpts, new IgnoringDiagConsumer()),
SourceMgr(Diags, FileMgr), TargetOpts(new TargetOptions) { SourceMgr(Diags, FileMgr), TargetOpts(new TargetOptions) {
TargetOpts->Triple = "x86_64-unknown-linux-gnu"; TargetOpts->Triple = "x86_64-unknown-linux-gnu";
Target = TargetInfo::CreateTargetInfo(Diags, *TargetOpts); Target = TargetInfo::CreateTargetInfo(Diags, *TargetOpts);
@ -93,7 +93,6 @@ protected:
FileSystemOptions FileMgrOpts; FileSystemOptions FileMgrOpts;
FileManager FileMgr; FileManager FileMgr;
IntrusiveRefCntPtr<DiagnosticIDs> DiagID;
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diags; DiagnosticsEngine Diags;
SourceManager SourceMgr; SourceManager SourceMgr;

View File

@ -136,7 +136,7 @@ protected:
: InMemoryFileSystem( : InMemoryFileSystem(
llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>()), llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>()),
FileMgr(FileSystemOptions(), InMemoryFileSystem), FileMgr(FileSystemOptions(), InMemoryFileSystem),
DiagID(new DiagnosticIDs()), DiagID(DiagnosticIDs::create()),
Diags(DiagID, DiagOpts, new IgnoringDiagConsumer()), Diags(DiagID, DiagOpts, new IgnoringDiagConsumer()),
SourceMgr(Diags, FileMgr), TargetOpts(new TargetOptions()) { SourceMgr(Diags, FileMgr), TargetOpts(new TargetOptions()) {
TargetOpts->Triple = "x86_64-apple-darwin11.1.0"; TargetOpts->Triple = "x86_64-apple-darwin11.1.0";

View File

@ -29,8 +29,8 @@ namespace {
class PPConditionalDirectiveRecordTest : public ::testing::Test { class PPConditionalDirectiveRecordTest : public ::testing::Test {
protected: protected:
PPConditionalDirectiveRecordTest() PPConditionalDirectiveRecordTest()
: FileMgr(FileMgrOpts), DiagID(new DiagnosticIDs()), : FileMgr(FileMgrOpts),
Diags(DiagID, DiagOpts, new IgnoringDiagConsumer()), Diags(DiagnosticIDs::create(), DiagOpts, new IgnoringDiagConsumer()),
SourceMgr(Diags, FileMgr), TargetOpts(new TargetOptions) { SourceMgr(Diags, FileMgr), TargetOpts(new TargetOptions) {
TargetOpts->Triple = "x86_64-apple-darwin11.1.0"; TargetOpts->Triple = "x86_64-apple-darwin11.1.0";
Target = TargetInfo::CreateTargetInfo(Diags, *TargetOpts); Target = TargetInfo::CreateTargetInfo(Diags, *TargetOpts);
@ -38,7 +38,6 @@ protected:
FileSystemOptions FileMgrOpts; FileSystemOptions FileMgrOpts;
FileManager FileMgr; FileManager FileMgr;
IntrusiveRefCntPtr<DiagnosticIDs> DiagID;
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diags; DiagnosticsEngine Diags;
SourceManager SourceMgr; SourceManager SourceMgr;

View File

@ -31,8 +31,8 @@ namespace {
class PPDependencyDirectivesTest : public ::testing::Test { class PPDependencyDirectivesTest : public ::testing::Test {
protected: protected:
PPDependencyDirectivesTest() PPDependencyDirectivesTest()
: FileMgr(FileMgrOpts), DiagID(new DiagnosticIDs()), : FileMgr(FileMgrOpts),
Diags(DiagID, DiagOpts, new IgnoringDiagConsumer()), Diags(DiagnosticIDs::create(), DiagOpts, new IgnoringDiagConsumer()),
SourceMgr(Diags, FileMgr), TargetOpts(new TargetOptions) { SourceMgr(Diags, FileMgr), TargetOpts(new TargetOptions) {
TargetOpts->Triple = "x86_64-apple-macos12"; TargetOpts->Triple = "x86_64-apple-macos12";
Target = TargetInfo::CreateTargetInfo(Diags, *TargetOpts); Target = TargetInfo::CreateTargetInfo(Diags, *TargetOpts);
@ -40,7 +40,6 @@ protected:
FileSystemOptions FileMgrOpts; FileSystemOptions FileMgrOpts;
FileManager FileMgr; FileManager FileMgr;
IntrusiveRefCntPtr<DiagnosticIDs> DiagID;
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diags; DiagnosticsEngine Diags;
SourceManager SourceMgr; SourceManager SourceMgr;

View File

@ -27,8 +27,8 @@ namespace {
class PPMemoryAllocationsTest : public ::testing::Test { class PPMemoryAllocationsTest : public ::testing::Test {
protected: protected:
PPMemoryAllocationsTest() PPMemoryAllocationsTest()
: FileMgr(FileMgrOpts), DiagID(new DiagnosticIDs()), : FileMgr(FileMgrOpts),
Diags(DiagID, DiagOpts, new IgnoringDiagConsumer()), Diags(DiagnosticIDs::create(), DiagOpts, new IgnoringDiagConsumer()),
SourceMgr(Diags, FileMgr), TargetOpts(new TargetOptions) { SourceMgr(Diags, FileMgr), TargetOpts(new TargetOptions) {
TargetOpts->Triple = "x86_64-apple-darwin11.1.0"; TargetOpts->Triple = "x86_64-apple-darwin11.1.0";
Target = TargetInfo::CreateTargetInfo(Diags, *TargetOpts); Target = TargetInfo::CreateTargetInfo(Diags, *TargetOpts);
@ -36,7 +36,6 @@ protected:
FileSystemOptions FileMgrOpts; FileSystemOptions FileMgrOpts;
FileManager FileMgr; FileManager FileMgr;
IntrusiveRefCntPtr<DiagnosticIDs> DiagID;
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
DiagnosticsEngine Diags; DiagnosticsEngine Diags;
SourceManager SourceMgr; SourceManager SourceMgr;

View File

@ -71,8 +71,8 @@ public:
class ParseHLSLRootSignatureTest : public ::testing::Test { class ParseHLSLRootSignatureTest : public ::testing::Test {
protected: protected:
ParseHLSLRootSignatureTest() ParseHLSLRootSignatureTest()
: FileMgr(FileMgrOpts), DiagID(new DiagnosticIDs()), : FileMgr(FileMgrOpts), Consumer(new ExpectedDiagConsumer()),
Consumer(new ExpectedDiagConsumer()), Diags(DiagID, DiagOpts, Consumer), Diags(DiagnosticIDs::create(), DiagOpts, Consumer),
SourceMgr(Diags, FileMgr), TargetOpts(new TargetOptions) { SourceMgr(Diags, FileMgr), TargetOpts(new TargetOptions) {
// This is an arbitrarily chosen target triple to create the target info. // This is an arbitrarily chosen target triple to create the target info.
TargetOpts->Triple = "dxil"; TargetOpts->Triple = "dxil";
@ -114,7 +114,6 @@ protected:
FileSystemOptions FileMgrOpts; FileSystemOptions FileMgrOpts;
FileManager FileMgr; FileManager FileMgr;
IntrusiveRefCntPtr<DiagnosticIDs> DiagID;
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
ExpectedDiagConsumer *Consumer; ExpectedDiagConsumer *Consumer;
DiagnosticsEngine Diags; DiagnosticsEngine Diags;

View File

@ -82,7 +82,7 @@ public:
EXPECT_TRUE(Invocation); EXPECT_TRUE(Invocation);
CompilerInstance Instance(std::move(Invocation)); CompilerInstance Instance(std::move(Invocation));
Instance.setDiagnostics(Diags.get()); Instance.setDiagnostics(Diags);
Instance.getFrontendOpts().OutputFile = CacheBMIPath; Instance.getFrontendOpts().OutputFile = CacheBMIPath;
GenerateReducedModuleInterfaceAction Action; GenerateReducedModuleInterfaceAction Action;
EXPECT_TRUE(Instance.ExecuteAction(Action)); EXPECT_TRUE(Instance.ExecuteAction(Action));

View File

@ -87,7 +87,7 @@ export int aa = 43;
Buf->release(); Buf->release();
CompilerInstance Instance(std::move(Invocation)); CompilerInstance Instance(std::move(Invocation));
Instance.setDiagnostics(Diags.get()); Instance.setDiagnostics(Diags);
Instance.getFrontendOpts().OutputFile = BMIPath; Instance.getFrontendOpts().OutputFile = BMIPath;
@ -122,7 +122,7 @@ export int aa = 43;
CompilerInstance Clang(std::move(Invocation)); CompilerInstance Clang(std::move(Invocation));
Clang.setDiagnostics(Diags.get()); Clang.setDiagnostics(Diags);
FileManager *FM = Clang.createFileManager(CIOpts.VFS); FileManager *FM = Clang.createFileManager(CIOpts.VFS);
Clang.createSourceManager(*FM); Clang.createSourceManager(*FM);

View File

@ -80,7 +80,7 @@ public:
EXPECT_TRUE(Invocation); EXPECT_TRUE(Invocation);
CompilerInstance Instance(std::move(Invocation)); CompilerInstance Instance(std::move(Invocation));
Instance.setDiagnostics(Diags.get()); Instance.setDiagnostics(Diags);
Instance.getFrontendOpts().OutputFile = CacheBMIPath; Instance.getFrontendOpts().OutputFile = CacheBMIPath;
// Avoid memory leaks. // Avoid memory leaks.
Instance.getFrontendOpts().DisableFree = false; Instance.getFrontendOpts().DisableFree = false;

View File

@ -121,7 +121,7 @@ TEST_F(ModuleCacheTest, CachedModuleNewPath) {
createInvocationAndEnableFree(Args, CIOpts); createInvocationAndEnableFree(Args, CIOpts);
ASSERT_TRUE(Invocation); ASSERT_TRUE(Invocation);
CompilerInstance Instance(std::move(Invocation)); CompilerInstance Instance(std::move(Invocation));
Instance.setDiagnostics(Diags.get()); Instance.setDiagnostics(Diags);
SyntaxOnlyAction Action; SyntaxOnlyAction Action;
ASSERT_TRUE(Instance.ExecuteAction(Action)); ASSERT_TRUE(Instance.ExecuteAction(Action));
ASSERT_FALSE(Diags->hasErrorOccurred()); ASSERT_FALSE(Diags->hasErrorOccurred());
@ -145,7 +145,7 @@ TEST_F(ModuleCacheTest, CachedModuleNewPath) {
CompilerInstance Instance2(std::move(Invocation2), CompilerInstance Instance2(std::move(Invocation2),
Instance.getPCHContainerOperations(), Instance.getPCHContainerOperations(),
&Instance.getModuleCache()); &Instance.getModuleCache());
Instance2.setDiagnostics(Diags.get()); Instance2.setDiagnostics(Diags);
SyntaxOnlyAction Action2; SyntaxOnlyAction Action2;
ASSERT_FALSE(Instance2.ExecuteAction(Action2)); ASSERT_FALSE(Instance2.ExecuteAction(Action2));
ASSERT_TRUE(Diags->hasErrorOccurred()); ASSERT_TRUE(Diags->hasErrorOccurred());
@ -171,7 +171,7 @@ TEST_F(ModuleCacheTest, CachedModuleNewPathAllowErrors) {
createInvocationAndEnableFree(Args, CIOpts); createInvocationAndEnableFree(Args, CIOpts);
ASSERT_TRUE(Invocation); ASSERT_TRUE(Invocation);
CompilerInstance Instance(std::move(Invocation)); CompilerInstance Instance(std::move(Invocation));
Instance.setDiagnostics(Diags.get()); Instance.setDiagnostics(Diags);
SyntaxOnlyAction Action; SyntaxOnlyAction Action;
ASSERT_TRUE(Instance.ExecuteAction(Action)); ASSERT_TRUE(Instance.ExecuteAction(Action));
ASSERT_FALSE(Diags->hasErrorOccurred()); ASSERT_FALSE(Diags->hasErrorOccurred());
@ -189,7 +189,7 @@ TEST_F(ModuleCacheTest, CachedModuleNewPathAllowErrors) {
CompilerInstance Instance2(std::move(Invocation2), CompilerInstance Instance2(std::move(Invocation2),
Instance.getPCHContainerOperations(), Instance.getPCHContainerOperations(),
&Instance.getModuleCache()); &Instance.getModuleCache());
Instance2.setDiagnostics(Diags.get()); Instance2.setDiagnostics(Diags);
SyntaxOnlyAction Action2; SyntaxOnlyAction Action2;
ASSERT_FALSE(Instance2.ExecuteAction(Action2)); ASSERT_FALSE(Instance2.ExecuteAction(Action2));
ASSERT_TRUE(Diags->hasErrorOccurred()); ASSERT_TRUE(Diags->hasErrorOccurred());

View File

@ -99,7 +99,7 @@ void foo() {}
ASSERT_TRUE(Invocation); ASSERT_TRUE(Invocation);
CompilerInstance Instance(std::move(Invocation)); CompilerInstance Instance(std::move(Invocation));
Instance.setDiagnostics(Diags.get()); Instance.setDiagnostics(Diags);
Instance.getFrontendOpts().OutputFile = CacheBMIPath; Instance.getFrontendOpts().OutputFile = CacheBMIPath;
GenerateReducedModuleInterfaceAction Action; GenerateReducedModuleInterfaceAction Action;
ASSERT_TRUE(Instance.ExecuteAction(Action)); ASSERT_TRUE(Instance.ExecuteAction(Action));

View File

@ -101,7 +101,7 @@ export using ::E;
PreambleCallbacks Callbacks; PreambleCallbacks Callbacks;
llvm::ErrorOr<PrecompiledPreamble> BuiltPreamble = PrecompiledPreamble::Build( llvm::ErrorOr<PrecompiledPreamble> BuiltPreamble = PrecompiledPreamble::Build(
*Invocation, Buffer.get(), Bounds, *Diags, VFS, *Invocation, Buffer.get(), Bounds, Diags, VFS,
std::make_shared<PCHContainerOperations>(), std::make_shared<PCHContainerOperations>(),
/*StoreInMemory=*/false, /*StoragePath=*/TestDir, Callbacks); /*StoreInMemory=*/false, /*StoragePath=*/TestDir, Callbacks);
@ -112,7 +112,7 @@ export using ::E;
BuiltPreamble->OverridePreamble(*Invocation, VFS, Buffer.get()); BuiltPreamble->OverridePreamble(*Invocation, VFS, Buffer.get());
auto Clang = std::make_unique<CompilerInstance>(std::move(Invocation)); auto Clang = std::make_unique<CompilerInstance>(std::move(Invocation));
Clang->setDiagnostics(Diags.get()); Clang->setDiagnostics(Diags);
if (auto VFSWithRemapping = createVFSFromCompilerInvocation( if (auto VFSWithRemapping = createVFSFromCompilerInvocation(
Clang->getInvocation(), Clang->getDiagnostics(), VFS)) Clang->getInvocation(), Clang->getDiagnostics(), VFS))

View File

@ -106,7 +106,7 @@ export namespace Fibonacci
Invocation->getFrontendOpts().DisableFree = false; Invocation->getFrontendOpts().DisableFree = false;
CompilerInstance Instance(std::move(Invocation)); CompilerInstance Instance(std::move(Invocation));
Instance.setDiagnostics(Diags.get()); Instance.setDiagnostics(Diags);
std::string CacheBMIPath = llvm::Twine(TestDir + "/Cached.pcm").str(); std::string CacheBMIPath = llvm::Twine(TestDir + "/Cached.pcm").str();
Instance.getFrontendOpts().OutputFile = CacheBMIPath; Instance.getFrontendOpts().OutputFile = CacheBMIPath;

View File

@ -49,8 +49,7 @@ struct RewriterDiagnosticConsumer : public DiagnosticConsumer {
class RewriterTestContext { class RewriterTestContext {
public: public:
RewriterTestContext() RewriterTestContext()
: Diagnostics(IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs), : Diagnostics(DiagnosticIDs::create(), DiagOpts),
DiagOpts),
InMemoryFileSystem( InMemoryFileSystem(
llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>()), llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>()),
OverlayFileSystem( OverlayFileSystem(

View File

@ -133,7 +133,7 @@ public:
CI->getPreprocessorOpts().addRemappedFile( CI->getPreprocessorOpts().addRemappedFile(
FileName, llvm::MemoryBuffer::getMemBufferCopy(Code).release()); FileName, llvm::MemoryBuffer::getMemBufferCopy(Code).release());
CompilerInstance Compiler(std::move(CI)); CompilerInstance Compiler(std::move(CI));
Compiler.setDiagnostics(Diags.get()); Compiler.setDiagnostics(Diags);
Compiler.setFileManager(FileMgr.get()); Compiler.setFileManager(FileMgr.get());
Compiler.setSourceManager(SourceMgr.get()); Compiler.setSourceManager(SourceMgr.get());
@ -250,7 +250,8 @@ public:
// Data fields. // Data fields.
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
llvm::IntrusiveRefCntPtr<DiagnosticsEngine> Diags = llvm::IntrusiveRefCntPtr<DiagnosticsEngine> Diags =
new DiagnosticsEngine(new DiagnosticIDs, DiagOpts); llvm::makeIntrusiveRefCnt<DiagnosticsEngine>(DiagnosticIDs::create(),
DiagOpts);
IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> FS = IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> FS =
llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>(); llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>();
llvm::IntrusiveRefCntPtr<FileManager> FileMgr = llvm::IntrusiveRefCntPtr<FileManager> FileMgr =

View File

@ -152,7 +152,7 @@ SyntaxTreeTest::buildTree(StringRef Code, const TestClangConfig &ClangConfig) {
Invocation->getPreprocessorOpts().addRemappedFile( Invocation->getPreprocessorOpts().addRemappedFile(
FileName, llvm::MemoryBuffer::getMemBufferCopy(Code).release()); FileName, llvm::MemoryBuffer::getMemBufferCopy(Code).release());
CompilerInstance Compiler(Invocation); CompilerInstance Compiler(Invocation);
Compiler.setDiagnostics(Diags.get()); Compiler.setDiagnostics(Diags);
Compiler.setFileManager(FileMgr.get()); Compiler.setFileManager(FileMgr.get());
Compiler.setSourceManager(SourceMgr.get()); Compiler.setSourceManager(SourceMgr.get());

View File

@ -42,7 +42,8 @@ protected:
// Data fields. // Data fields.
DiagnosticOptions DiagOpts; DiagnosticOptions DiagOpts;
IntrusiveRefCntPtr<DiagnosticsEngine> Diags = IntrusiveRefCntPtr<DiagnosticsEngine> Diags =
new DiagnosticsEngine(new DiagnosticIDs, DiagOpts); llvm::makeIntrusiveRefCnt<DiagnosticsEngine>(DiagnosticIDs::create(),
DiagOpts);
IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> FS = IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> FS =
llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>(); llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>();
IntrusiveRefCntPtr<FileManager> FileMgr = IntrusiveRefCntPtr<FileManager> FileMgr =

View File

@ -233,10 +233,8 @@ clang::IntrusiveRefCntPtr<clang::DiagnosticsEngine>
CompilerInstance::createDiagnostics(clang::DiagnosticOptions &opts, CompilerInstance::createDiagnostics(clang::DiagnosticOptions &opts,
clang::DiagnosticConsumer *client, clang::DiagnosticConsumer *client,
bool shouldOwnClient) { bool shouldOwnClient) {
clang::IntrusiveRefCntPtr<clang::DiagnosticIDs> diagID( auto diags = llvm::makeIntrusiveRefCnt<clang::DiagnosticsEngine>(
new clang::DiagnosticIDs()); clang::DiagnosticIDs::create(), opts);
clang::IntrusiveRefCntPtr<clang::DiagnosticsEngine> diags(
new clang::DiagnosticsEngine(diagID, opts));
// Create the diagnostic client for reporting errors or for // Create the diagnostic client for reporting errors or for
// implementing -verify. // implementing -verify.

View File

@ -123,15 +123,14 @@ int main(int argc, const char **argv) {
// Create DiagnosticsEngine for the compiler driver // Create DiagnosticsEngine for the compiler driver
std::unique_ptr<clang::DiagnosticOptions> diagOpts = std::unique_ptr<clang::DiagnosticOptions> diagOpts =
createAndPopulateDiagOpts(args); createAndPopulateDiagOpts(args);
llvm::IntrusiveRefCntPtr<clang::DiagnosticIDs> diagID(
new clang::DiagnosticIDs());
Fortran::frontend::TextDiagnosticPrinter *diagClient = Fortran::frontend::TextDiagnosticPrinter *diagClient =
new Fortran::frontend::TextDiagnosticPrinter(llvm::errs(), *diagOpts); new Fortran::frontend::TextDiagnosticPrinter(llvm::errs(), *diagOpts);
diagClient->setPrefix( diagClient->setPrefix(
std::string(llvm::sys::path::stem(getExecutablePath(args[0])))); std::string(llvm::sys::path::stem(getExecutablePath(args[0]))));
clang::DiagnosticsEngine diags(diagID, *diagOpts, diagClient); clang::DiagnosticsEngine diags(clang::DiagnosticIDs::create(), *diagOpts,
diagClient);
// Prepare the driver // Prepare the driver
clang::driver::Driver theDriver(driverPath, clang::driver::Driver theDriver(driverPath,

View File

@ -65,10 +65,9 @@ int fc1_main(llvm::ArrayRef<const char *> argv, const char *argv0) {
// Create CompilerInvocation - use a dedicated instance of DiagnosticsEngine // Create CompilerInvocation - use a dedicated instance of DiagnosticsEngine
// for parsing the arguments // for parsing the arguments
llvm::IntrusiveRefCntPtr<clang::DiagnosticIDs> diagID(
new clang::DiagnosticIDs());
clang::DiagnosticOptions diagOpts; clang::DiagnosticOptions diagOpts;
clang::DiagnosticsEngine diags(diagID, diagOpts, diagsBuffer); clang::DiagnosticsEngine diags(clang::DiagnosticIDs::create(), diagOpts,
diagsBuffer);
bool success = CompilerInvocation::createFromArgs(flang->getInvocation(), bool success = CompilerInvocation::createFromArgs(flang->getInvocation(),
argv, diags, argv0); argv, diags, argv0);

View File

@ -260,9 +260,8 @@ TokenVerifier::TokenVerifier(std::string body) {
// Let's build the actual source code Clang needs and setup some utility // Let's build the actual source code Clang needs and setup some utility
// objects. // objects.
llvm::IntrusiveRefCntPtr<DiagnosticIDs> diag_ids(new DiagnosticIDs());
DiagnosticOptions diags_opts; DiagnosticOptions diags_opts;
DiagnosticsEngine diags(diag_ids, diags_opts); DiagnosticsEngine diags(DiagnosticIDs::create(), diags_opts);
clang::SourceManager SM(diags, file_mgr); clang::SourceManager SM(diags, file_mgr);
auto buf = llvm::MemoryBuffer::getMemBuffer(body); auto buf = llvm::MemoryBuffer::getMemBuffer(body);

View File

@ -747,7 +747,7 @@ ClangModulesDeclVendor::Create(Target &target) {
// Make sure clang uses the same VFS as LLDB. // Make sure clang uses the same VFS as LLDB.
instance->createFileManager(FileSystem::Instance().GetVirtualFileSystem()); instance->createFileManager(FileSystem::Instance().GetVirtualFileSystem());
instance->setDiagnostics(diagnostics_engine.get()); instance->setDiagnostics(diagnostics_engine);
std::unique_ptr<clang::FrontendAction> action(new clang::SyntaxOnlyAction); std::unique_ptr<clang::FrontendAction> action(new clang::SyntaxOnlyAction);

View File

@ -162,9 +162,8 @@ void ClangHighlighter::Highlight(const HighlightStyle &options,
// Let's build the actual source code Clang needs and setup some utility // Let's build the actual source code Clang needs and setup some utility
// objects. // objects.
std::string full_source = previous_lines.str() + line.str(); std::string full_source = previous_lines.str() + line.str();
llvm::IntrusiveRefCntPtr<DiagnosticIDs> diag_ids(new DiagnosticIDs());
DiagnosticOptions diags_opts; DiagnosticOptions diags_opts;
DiagnosticsEngine diags(diag_ids, diags_opts); DiagnosticsEngine diags(DiagnosticIDs::create(), diags_opts);
clang::SourceManager SM(diags, file_mgr); clang::SourceManager SM(diags, file_mgr);
auto buf = llvm::MemoryBuffer::getMemBuffer(full_source); auto buf = llvm::MemoryBuffer::getMemBuffer(full_source);

View File

@ -665,10 +665,9 @@ void TypeSystemClang::CreateASTContext() {
m_file_manager_up = std::make_unique<clang::FileManager>( m_file_manager_up = std::make_unique<clang::FileManager>(
file_system_options, FileSystem::Instance().GetVirtualFileSystem()); file_system_options, FileSystem::Instance().GetVirtualFileSystem());
llvm::IntrusiveRefCntPtr<DiagnosticIDs> diag_id_sp(new DiagnosticIDs());
m_diagnostic_options_up = std::make_unique<DiagnosticOptions>(); m_diagnostic_options_up = std::make_unique<DiagnosticOptions>();
m_diagnostics_engine_up = m_diagnostics_engine_up = std::make_unique<DiagnosticsEngine>(
std::make_unique<DiagnosticsEngine>(diag_id_sp, *m_diagnostic_options_up); DiagnosticIDs::create(), *m_diagnostic_options_up);
m_source_manager_up = std::make_unique<clang::SourceManager>( m_source_manager_up = std::make_unique<clang::SourceManager>(
*m_diagnostics_engine_up, *m_file_manager_up); *m_diagnostics_engine_up, *m_file_manager_up);