Remove DiagnosticConsumer::clone(), a bad idea that is now unused.

llvm-svn: 181070
This commit is contained in:
Douglas Gregor 2013-05-03 23:07:45 +00:00
parent 5fe0e7b2f6
commit 30071cead9
19 changed files with 7 additions and 99 deletions

View File

@ -1301,10 +1301,6 @@ public:
/// warnings and errors.
virtual void HandleDiagnostic(DiagnosticsEngine::Level DiagLevel,
const Diagnostic &Info);
/// \brief Clone the diagnostic consumer, producing an equivalent consumer
/// that can be used in a different context.
virtual DiagnosticConsumer *clone(DiagnosticsEngine &Diags) const = 0;
};
/// \brief A diagnostic client that ignores all diagnostics.
@ -1314,9 +1310,6 @@ class IgnoringDiagConsumer : public DiagnosticConsumer {
const Diagnostic &Info) {
// Just ignore it.
}
DiagnosticConsumer *clone(DiagnosticsEngine &Diags) const {
return new IgnoringDiagConsumer();
}
};
/// \brief Diagnostic consumer that forwards diagnostics along to an
@ -1335,8 +1328,6 @@ public:
virtual void clear();
virtual bool IncludeInDiagnosticCounts() const;
virtual DiagnosticConsumer *clone(DiagnosticsEngine &Diags) const;
};
// Struct used for sending info about how a type should be printed.

View File

@ -60,12 +60,6 @@ public:
Primary->HandleDiagnostic(DiagLevel, Info);
Secondary->HandleDiagnostic(DiagLevel, Info);
}
DiagnosticConsumer *clone(DiagnosticsEngine &Diags) const {
return new ChainedDiagnosticConsumer(Primary->clone(Diags),
Secondary->clone(Diags));
}
};
} // end namspace clang

View File

@ -493,12 +493,8 @@ public:
///
/// \param ShouldOwnClient If Client is non-NULL, specifies whether
/// the diagnostic object should take ownership of the client.
///
/// \param ShouldCloneClient If Client is non-NULL, specifies whether that
/// client should be cloned.
void createDiagnostics(DiagnosticConsumer *Client = 0,
bool ShouldOwnClient = true,
bool ShouldCloneClient = true);
bool ShouldOwnClient = true);
/// Create a DiagnosticsEngine object with a the TextDiagnosticPrinter.
///
@ -522,7 +518,6 @@ public:
createDiagnostics(DiagnosticOptions *Opts,
DiagnosticConsumer *Client = 0,
bool ShouldOwnClient = true,
bool ShouldCloneClient = true,
const CodeGenOptions *CodeGenOpts = 0);
/// Create the file manager and replace any existing one with it.

View File

@ -70,8 +70,6 @@ public:
virtual void HandleDiagnostic(DiagnosticsEngine::Level DiagLevel,
const Diagnostic &Info);
DiagnosticConsumer *clone(DiagnosticsEngine &Diags) const;
};
} // end namespace clang

View File

@ -45,8 +45,6 @@ public:
/// FlushDiagnostics - Flush the buffered diagnostics to an given
/// diagnostic engine.
void FlushDiagnostics(DiagnosticsEngine &Diags) const;
virtual DiagnosticConsumer *clone(DiagnosticsEngine &Diags) const;
};
} // end namspace clang

View File

@ -50,7 +50,6 @@ public:
void BeginSourceFile(const LangOptions &LO, const Preprocessor *PP);
void EndSourceFile();
void HandleDiagnostic(DiagnosticsEngine::Level Level, const Diagnostic &Info);
DiagnosticConsumer *clone(DiagnosticsEngine &Diags) const;
};
} // end namespace clang

View File

@ -266,8 +266,6 @@ public:
virtual void HandleDiagnostic(DiagnosticsEngine::Level DiagLevel,
const Diagnostic &Info);
virtual DiagnosticConsumer *clone(DiagnosticsEngine &Diags) const;
};
} // end namspace clang

View File

@ -121,8 +121,6 @@ public:
/// \brief Emit a diagnostic via the adapted diagnostic client.
void Diag(SourceLocation Loc, unsigned DiagID);
DiagnosticConsumer *clone(DiagnosticsEngine &Diags) const;
};
}

View File

@ -140,12 +140,6 @@ public:
// Non-ARC warnings are ignored.
Diags.setLastDiagnosticIgnored();
}
DiagnosticConsumer *clone(DiagnosticsEngine &Diags) const {
// Just drop any diagnostics that come from cloned consumers; they'll
// have different source managers anyway.
return new IgnoringDiagConsumer();
}
};
} // end anonymous namespace

View File

@ -989,11 +989,6 @@ bool ForwardingDiagnosticConsumer::IncludeInDiagnosticCounts() const {
return Target.IncludeInDiagnosticCounts();
}
DiagnosticConsumer *
ForwardingDiagnosticConsumer::clone(DiagnosticsEngine &Diags) const {
return new ForwardingDiagnosticConsumer(Target);
}
PartialDiagnostic::StorageAllocator::StorageAllocator() {
for (unsigned I = 0; I != NumCached; ++I)
FreeList[I] = Cached + I;

View File

@ -604,15 +604,6 @@ public:
virtual void HandleDiagnostic(DiagnosticsEngine::Level Level,
const Diagnostic &Info);
DiagnosticConsumer *clone(DiagnosticsEngine &Diags) const {
// Just drop any diagnostics that come from cloned consumers; they'll
// have different source managers anyway.
// FIXME: We'd like to be able to capture these somehow, even if it's just
// file/line/column, because they could occur when parsing module maps or
// building modules on-demand.
return new IgnoringDiagConsumer();
}
};
/// \brief RAII object that optionally captures diagnostics, if
@ -679,8 +670,7 @@ void ASTUnit::ConfigureDiags(IntrusiveRefCntPtr<DiagnosticsEngine> &Diags,
Client = new StoredDiagnosticConsumer(AST.StoredDiagnostics);
Diags = CompilerInstance::createDiagnostics(new DiagnosticOptions(),
Client,
/*ShouldOwnClient=*/true,
/*ShouldCloneClient=*/false);
/*ShouldOwnClient=*/true);
} else if (CaptureDiagnostics) {
Diags->setClient(new StoredDiagnosticConsumer(AST.StoredDiagnostics));
}

View File

@ -155,18 +155,15 @@ static void SetupSerializedDiagnostics(DiagnosticOptions *DiagOpts,
}
void CompilerInstance::createDiagnostics(DiagnosticConsumer *Client,
bool ShouldOwnClient,
bool ShouldCloneClient) {
bool ShouldOwnClient) {
Diagnostics = createDiagnostics(&getDiagnosticOpts(), Client,
ShouldOwnClient, ShouldCloneClient,
&getCodeGenOpts());
ShouldOwnClient, &getCodeGenOpts());
}
IntrusiveRefCntPtr<DiagnosticsEngine>
CompilerInstance::createDiagnostics(DiagnosticOptions *Opts,
DiagnosticConsumer *Client,
bool ShouldOwnClient,
bool ShouldCloneClient,
const CodeGenOptions *CodeGenOpts) {
IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs());
IntrusiveRefCntPtr<DiagnosticsEngine>
@ -175,10 +172,7 @@ CompilerInstance::createDiagnostics(DiagnosticOptions *Opts,
// Create the diagnostic client for reporting errors or for
// implementing -verify.
if (Client) {
if (ShouldCloneClient)
Diags->setClient(Client->clone(*Diags), ShouldOwnClient);
else
Diags->setClient(Client, ShouldOwnClient);
Diags->setClient(Client, ShouldOwnClient);
} else
Diags->setClient(new TextDiagnosticPrinter(llvm::errs(), Opts));
@ -871,8 +865,7 @@ static void compileModule(CompilerInstance &ImportingInstance,
Instance.createDiagnostics(new ForwardingDiagnosticConsumer(
ImportingInstance.getDiagnosticClient()),
/*ShouldOwnClient=*/true,
/*ShouldCloneClient=*/false);
/*ShouldOwnClient=*/true);
// Note that this module is part of the module build stack, so that we
// can detect cycles in the module graph.

View File

@ -171,8 +171,3 @@ void LogDiagnosticPrinter::HandleDiagnostic(DiagnosticsEngine::Level Level,
Entries.push_back(DE);
}
DiagnosticConsumer *
LogDiagnosticPrinter::clone(DiagnosticsEngine &Diags) const {
return new LogDiagnosticPrinter(OS, &*DiagOpts, /*OwnsOutputStream=*/false);
}

View File

@ -114,10 +114,6 @@ public:
virtual void finish();
DiagnosticConsumer *clone(DiagnosticsEngine &Diags) const {
return new SDiagsWriter(State);
}
private:
/// \brief Emit the preamble for the serialized diagnostics.
void EmitPreamble();

View File

@ -75,6 +75,3 @@ void TextDiagnosticBuffer::FlushDiagnostics(DiagnosticsEngine &Diags) const {
escapeDiag(it->second, Buf)));
}
DiagnosticConsumer *TextDiagnosticBuffer::clone(DiagnosticsEngine &) const {
return new TextDiagnosticBuffer();
}

View File

@ -155,8 +155,3 @@ void TextDiagnosticPrinter::HandleDiagnostic(DiagnosticsEngine::Level Level,
OS.flush();
}
DiagnosticConsumer *
TextDiagnosticPrinter::clone(DiagnosticsEngine &Diags) const {
return new TextDiagnosticPrinter(OS, &*DiagOpts, /*OwnsOutputStream=*/false);
}

View File

@ -820,14 +820,6 @@ void VerifyDiagnosticConsumer::CheckDiagnostics() {
ED.Notes.clear();
}
DiagnosticConsumer *
VerifyDiagnosticConsumer::clone(DiagnosticsEngine &Diags) const {
if (!Diags.getClient())
Diags.setClient(PrimaryClient->clone(Diags));
return new VerifyDiagnosticConsumer(Diags);
}
Directive *Directive::create(bool RegexKind, SourceLocation DirectiveLoc,
SourceLocation DiagnosticLoc, StringRef Text,
unsigned Min, unsigned Max) {

View File

@ -197,9 +197,4 @@ void FixItRewriter::Diag(SourceLocation Loc, unsigned DiagID) {
Diags.setClient(this);
}
DiagnosticConsumer *FixItRewriter::clone(DiagnosticsEngine &Diags) const {
return new FixItRewriter(Diags, Diags.getSourceManager(),
Rewrite.getLangOpts(), FixItOpts);
}
FixItOptions::~FixItOptions() {}

View File

@ -398,10 +398,6 @@ public:
if (level >= DiagnosticsEngine::Error)
Errors.push_back(StoredDiagnostic(level, Info));
}
DiagnosticConsumer *clone(DiagnosticsEngine &Diags) const {
return new IgnoringDiagConsumer();
}
};
//===----------------------------------------------------------------------===//
@ -549,8 +545,7 @@ static void clang_indexSourceFile_Impl(void *UserData) {
IntrusiveRefCntPtr<DiagnosticsEngine>
Diags(CompilerInstance::createDiagnostics(new DiagnosticOptions,
CaptureDiag,
/*ShouldOwnClient=*/true,
/*ShouldCloneClient=*/false));
/*ShouldOwnClient=*/true));
// Recover resources if we crash before exiting this function.
llvm::CrashRecoveryContextCleanupRegistrar<DiagnosticsEngine,