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
This commit is contained in:
@@ -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;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user