Make DiagnosticsEngine non-copyable
Also provide an out-of-line dtor for CompilerInvocation. Cleanup work that may help reduce header inclusion for IntrusiveRefCntPtr. llvm-svn: 208512
This commit is contained in:
parent
a90ee35a8e
commit
c7dc0621a7
|
@ -132,6 +132,9 @@ public:
|
|||
/// the user. DiagnosticsEngine is tied to one translation unit and one
|
||||
/// SourceManager.
|
||||
class DiagnosticsEngine : public RefCountedBase<DiagnosticsEngine> {
|
||||
DiagnosticsEngine(const DiagnosticsEngine &) LLVM_DELETED_FUNCTION;
|
||||
void operator=(const DiagnosticsEngine &) LLVM_DELETED_FUNCTION;
|
||||
|
||||
public:
|
||||
/// \brief The level of the diagnostic, after it has been through mapping.
|
||||
enum Level {
|
||||
|
|
|
@ -50,6 +50,8 @@ bool ParseDiagnosticArgs(DiagnosticOptions &Opts, llvm::opt::ArgList &Args,
|
|||
DiagnosticsEngine *Diags = nullptr);
|
||||
|
||||
class CompilerInvocationBase : public RefCountedBase<CompilerInvocation> {
|
||||
void operator=(const CompilerInvocationBase &) LLVM_DELETED_FUNCTION;
|
||||
|
||||
protected:
|
||||
/// Options controlling the language variant.
|
||||
IntrusiveRefCntPtr<LangOptions> LangOpts;
|
||||
|
@ -68,6 +70,7 @@ protected:
|
|||
|
||||
public:
|
||||
CompilerInvocationBase();
|
||||
~CompilerInvocationBase();
|
||||
|
||||
CompilerInvocationBase(const CompilerInvocationBase &X);
|
||||
|
||||
|
|
|
@ -791,7 +791,7 @@ void MicrosoftCXXNameMangler::mangleUnqualifiedName(const NamedDecl *ND,
|
|||
|
||||
case DeclarationName::CXXLiteralOperatorName: {
|
||||
// FIXME: Was this added in VS2010? Does MS even know how to mangle this?
|
||||
DiagnosticsEngine Diags = Context.getDiags();
|
||||
DiagnosticsEngine &Diags = Context.getDiags();
|
||||
unsigned DiagID = Diags.getCustomDiagID(DiagnosticsEngine::Error,
|
||||
"cannot mangle this literal operator yet");
|
||||
Diags.Report(ND->getLocation(), DiagID);
|
||||
|
@ -822,7 +822,7 @@ void MicrosoftCXXNameMangler::mangleNestedName(const NamedDecl *ND) {
|
|||
}
|
||||
|
||||
if (const BlockDecl *BD = dyn_cast<BlockDecl>(DC)) {
|
||||
DiagnosticsEngine Diags = Context.getDiags();
|
||||
DiagnosticsEngine &Diags = Context.getDiags();
|
||||
unsigned DiagID =
|
||||
Diags.getCustomDiagID(DiagnosticsEngine::Error,
|
||||
"cannot mangle a local inside this block yet");
|
||||
|
|
|
@ -57,6 +57,8 @@ CompilerInvocationBase::CompilerInvocationBase(const CompilerInvocationBase &X)
|
|||
HeaderSearchOpts(new HeaderSearchOptions(X.getHeaderSearchOpts())),
|
||||
PreprocessorOpts(new PreprocessorOptions(X.getPreprocessorOpts())) {}
|
||||
|
||||
CompilerInvocationBase::~CompilerInvocationBase() {}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Deserialization (from args)
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
|
Loading…
Reference in New Issue