Skip to content

Commit

Permalink
[CodeGen] Assert that EmittedDeferredDecls is empty
Browse files Browse the repository at this point in the history
Its contents are transferred into DeferredDecls in Release(), so it
should be empty in moveLazyEmissionStates(). This matches the code
downstream in Cling.

Differential Revision: https://reviews.llvm.org/D156660
  • Loading branch information
hahnjo committed Jul 31, 2023
1 parent dcb2824 commit 5ea647d
Showing 1 changed file with 2 additions and 5 deletions.
7 changes: 2 additions & 5 deletions clang/lib/CodeGen/CodeGenModule.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7455,6 +7455,8 @@ void CodeGenModule::moveLazyEmissionStates(CodeGenModule *NewBuilder) {
assert(NewBuilder->DeferredDecls.empty() &&
"Newly created module should not have deferred decls");
NewBuilder->DeferredDecls = std::move(DeferredDecls);
assert(EmittedDeferredDecls.empty() &&
"Still have (unmerged) EmittedDeferredDecls deferred decls");

assert(NewBuilder->DeferredVTables.empty() &&
"Newly created module should not have deferred vtables");
Expand All @@ -7470,10 +7472,5 @@ void CodeGenModule::moveLazyEmissionStates(CodeGenModule *NewBuilder) {

NewBuilder->TBAA = std::move(TBAA);

assert(NewBuilder->EmittedDeferredDecls.empty() &&
"Still have (unmerged) EmittedDeferredDecls deferred decls");

NewBuilder->EmittedDeferredDecls = std::move(EmittedDeferredDecls);

NewBuilder->ABI->MangleCtx = std::move(ABI->MangleCtx);
}

0 comments on commit 5ea647d

Please sign in to comment.