mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-30 04:35:00 +00:00
r189495: Pull out some debug logic into a function for legibility
Code review feedback from Eric Christopher. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189512 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
1800b662a0
commit
02ae44f31c
@ -649,6 +649,21 @@ MDString *DICompositeType::getIdentifier() const {
|
||||
return cast_or_null<MDString>(getField(DbgNode, 14));
|
||||
}
|
||||
|
||||
#ifndef NDEBUG
|
||||
static void VerifySubsetOf(const MDNode *LHS, const MDNode *RHS) {
|
||||
for (unsigned i = 0; i != LHS->getNumOperands(); ++i) {
|
||||
// Skip the 'empty' list (that's a single i32 0, rather than truly empty)
|
||||
if (i == 0 && isa<ConstantInt>(LHS->getOperand(i)))
|
||||
continue;
|
||||
const MDNode *E = cast<MDNode>(LHS->getOperand(i));
|
||||
bool found = false;
|
||||
for (unsigned j = 0; !found && j != RHS->getNumOperands(); ++j)
|
||||
found = E == RHS->getOperand(j);
|
||||
assert(found && "Losing a member during member list replacement");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/// \brief Set the array of member DITypes.
|
||||
void DICompositeType::setTypeArray(DIArray Elements, DIArray TParams) {
|
||||
assert((!TParams || DbgNode->getNumOperands() == 15) &&
|
||||
@ -657,19 +672,9 @@ void DICompositeType::setTypeArray(DIArray Elements, DIArray TParams) {
|
||||
TrackingVH<MDNode> N(*this);
|
||||
if (Elements) {
|
||||
#ifndef NDEBUG
|
||||
// Check that we're not dropping any elements on the floor here
|
||||
if (const MDNode *El = cast_or_null<MDNode>(N->getOperand(10))) {
|
||||
for (unsigned i = 0; i != El->getNumOperands(); ++i) {
|
||||
if (i == 0 && isa<ConstantInt>(El->getOperand(i)))
|
||||
continue;
|
||||
const MDNode *E = cast<MDNode>(El->getOperand(i));
|
||||
bool found = false;
|
||||
for (unsigned j = 0; !found && j != Elements.getNumElements(); ++j) {
|
||||
found = E == Elements.getElement(j);
|
||||
}
|
||||
assert(found && "Losing a member during member list replacement");
|
||||
}
|
||||
}
|
||||
// Check that the new list of members contains all the old members as well
|
||||
if (const MDNode *El = cast_or_null<MDNode>(N->getOperand(10)))
|
||||
VerifySubsetOf(El, Elements);
|
||||
#endif
|
||||
N->replaceOperandWith(10, Elements);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user