Use non-intrusive refcounting for LangOptions
This type is only refcounted in a couple of places so making ownership explicit improves clarity. llvm-svn: 212387
This commit is contained in:
parent
74437975c4
commit
269d840e40
|
@ -19,7 +19,6 @@
|
|||
#include "clang/Basic/LLVM.h"
|
||||
#include "clang/Basic/ObjCRuntime.h"
|
||||
#include "clang/Basic/Visibility.h"
|
||||
#include "llvm/ADT/IntrusiveRefCntPtr.h"
|
||||
#include <string>
|
||||
|
||||
namespace clang {
|
||||
|
@ -53,7 +52,7 @@ protected:
|
|||
|
||||
/// \brief Keeps track of the various options that can be
|
||||
/// enabled, which controls the dialect of C or C++ that is accepted.
|
||||
class LangOptions : public RefCountedBase<LangOptions>, public LangOptionsBase {
|
||||
class LangOptions : public LangOptionsBase {
|
||||
public:
|
||||
typedef clang::Visibility Visibility;
|
||||
|
||||
|
|
|
@ -83,7 +83,7 @@ public:
|
|||
};
|
||||
|
||||
private:
|
||||
IntrusiveRefCntPtr<LangOptions> LangOpts;
|
||||
std::shared_ptr<LangOptions> LangOpts;
|
||||
IntrusiveRefCntPtr<DiagnosticsEngine> Diagnostics;
|
||||
IntrusiveRefCntPtr<FileManager> FileMgr;
|
||||
IntrusiveRefCntPtr<SourceManager> SourceMgr;
|
||||
|
|
|
@ -52,9 +52,9 @@ bool ParseDiagnosticArgs(DiagnosticOptions &Opts, llvm::opt::ArgList &Args,
|
|||
class CompilerInvocationBase : public RefCountedBase<CompilerInvocation> {
|
||||
void operator=(const CompilerInvocationBase &) LLVM_DELETED_FUNCTION;
|
||||
|
||||
protected:
|
||||
public:
|
||||
/// Options controlling the language variant.
|
||||
IntrusiveRefCntPtr<LangOptions> LangOpts;
|
||||
std::shared_ptr<LangOptions> LangOpts;
|
||||
|
||||
/// Options controlling the target.
|
||||
IntrusiveRefCntPtr<TargetOptions> TargetOpts;
|
||||
|
@ -68,7 +68,6 @@ protected:
|
|||
/// Options controlling the preprocessor (aside from \#include handling).
|
||||
IntrusiveRefCntPtr<PreprocessorOptions> PreprocessorOpts;
|
||||
|
||||
public:
|
||||
CompilerInvocationBase();
|
||||
~CompilerInvocationBase();
|
||||
|
||||
|
|
|
@ -1087,7 +1087,7 @@ bool ASTUnit::Parse(llvm::MemoryBuffer *OverrideMainBuffer) {
|
|||
"IR inputs not support here!");
|
||||
|
||||
// Configure the various subsystems.
|
||||
LangOpts = &Clang->getLangOpts();
|
||||
LangOpts = Clang->getInvocation().LangOpts;
|
||||
FileSystemOpts = Clang->getFileSystemOpts();
|
||||
IntrusiveRefCntPtr<vfs::FileSystem> VFS =
|
||||
createVFSFromCompilerInvocation(Clang->getInvocation(), getDiagnostics());
|
||||
|
@ -1709,7 +1709,7 @@ void ASTUnit::transferASTDataFromCompilerInstance(CompilerInstance &CI) {
|
|||
// Steal the created target, context, and preprocessor if they have been
|
||||
// created.
|
||||
assert(CI.hasInvocation() && "missing invocation");
|
||||
LangOpts = CI.getInvocation().getLangOpts();
|
||||
LangOpts = CI.getInvocation().LangOpts;
|
||||
TheSema.reset(CI.takeSema());
|
||||
Consumer.reset(CI.takeASTConsumer());
|
||||
if (CI.hasASTContext())
|
||||
|
|
Loading…
Reference in New Issue