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:
parent
1b4cebd3b1
commit
3b9ed85d5b
@ -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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user