1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 19:12:56 +02:00

[JITLink] Add an assertion that block removal leaves no dangling symbols.

This commit is contained in:
Lang Hames 2020-02-11 08:51:45 -08:00
parent 1b4cebd3b1
commit 3b9ed85d5b

View File

@ -17,6 +17,7 @@
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/Optional.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/Triple.h"
#include "llvm/ExecutionEngine/JITSymbol.h"
#include "llvm/Support/Allocator.h"
@ -990,6 +991,11 @@ public:
/// Remove a block.
void removeBlock(Block &B) {
assert(llvm::none_of(B.getSection().symbols(),
[&](const Symbol *Sym) {
return &Sym->getBlock() == &B;
}) &&
"Block still has symbols attached");
B.getSection().removeBlock(B);
destroyBlock(B);
}