diff options
author | Hans Wennborg <hans@hanshq.net> | 2014-12-18 19:19:00 +0000 |
---|---|---|
committer | Hans Wennborg <hans@hanshq.net> | 2014-12-18 19:19:00 +0000 |
commit | 2b0d0148342090b44a637c5b9f63a3ceda8e351c (patch) | |
tree | 5f1cb21ace5024cdb4648cf73d8d2ce858d77f83 /clang/lib/CodeGen/ModuleBuilder.cpp | |
parent | 76d629744b6fc954720e3eb20a1966a56904f4e8 (diff) | |
download | bcm5719-llvm-2b0d0148342090b44a637c5b9f63a3ceda8e351c.tar.gz bcm5719-llvm-2b0d0148342090b44a637c5b9f63a3ceda8e351c.zip |
ModuleBuilder: assert that all deferred inline method defs get handled
While we're here, also move the declaration of DeferredInlineMethodDefinitions
closer to the other member vars and make it a SmallVector. NFC.
llvm-svn: 224533
Diffstat (limited to 'clang/lib/CodeGen/ModuleBuilder.cpp')
-rw-r--r-- | clang/lib/CodeGen/ModuleBuilder.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/clang/lib/CodeGen/ModuleBuilder.cpp b/clang/lib/CodeGen/ModuleBuilder.cpp index ee6f6f94c71..bf89a2f0325 100644 --- a/clang/lib/CodeGen/ModuleBuilder.cpp +++ b/clang/lib/CodeGen/ModuleBuilder.cpp @@ -52,6 +52,9 @@ namespace { std::unique_ptr<llvm::Module> M; std::unique_ptr<CodeGen::CodeGenModule> Builder; + private: + SmallVector<CXXMethodDecl *, 8> DeferredInlineMethodDefinitions; + public: CodeGeneratorImpl(DiagnosticsEngine &diags, const std::string& ModuleName, const CodeGenOptions &CGO, llvm::LLVMContext& C, @@ -60,7 +63,10 @@ namespace { CoverageInfo(CoverageInfo), M(new llvm::Module(ModuleName, C)) {} - virtual ~CodeGeneratorImpl() {} + virtual ~CodeGeneratorImpl() { + assert(DeferredInlineMethodDefinitions.empty() && + "Leftover inline method definitions!"); + } llvm::Module* GetModule() override { return M.get(); @@ -223,9 +229,6 @@ namespace { void HandleDependentLibrary(llvm::StringRef Lib) override { Builder->AddDependentLib(Lib); } - - private: - std::vector<CXXMethodDecl *> DeferredInlineMethodDefinitions; }; } |