Skip to content

Commit 3502337

Browse files
committed
temporary fix, to be fixed in #1474
1 parent 7348caf commit 3502337

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

mlir/lib/Dialect/QCO/IR/Modifiers/CtrlOp.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,9 @@ struct CtrlInlineId final : OpRewritePattern<CtrlOp> {
145145
} // namespace
146146

147147
UnitaryOpInterface CtrlOp::getBodyUnitary() {
148-
return llvm::dyn_cast<UnitaryOpInterface>(&getBody()->front());
148+
auto bodyUnitary = llvm::dyn_cast<UnitaryOpInterface>(&getBody()->front());
149+
assert(bodyUnitary);
150+
return bodyUnitary;
149151
}
150152

151153
size_t CtrlOp::getNumQubits() { return getNumTargets() + getNumControls(); }
@@ -160,7 +162,7 @@ Value CtrlOp::getInputQubit(const size_t i) {
160162
return getControlsIn()[i];
161163
}
162164
if (numControls <= i && i < getNumQubits()) {
163-
return getBodyUnitary().getInputQubit(i - numControls);
165+
return getTargetsIn()[i - numControls];
164166
}
165167
llvm::reportFatalUsageError("Invalid qubit index");
166168
}
@@ -171,7 +173,7 @@ Value CtrlOp::getOutputQubit(const size_t i) {
171173
return getControlsOut()[i];
172174
}
173175
if (numControls <= i && i < getNumQubits()) {
174-
return getBodyUnitary().getOutputQubit(i - numControls);
176+
return getTargetsOut()[i - numControls];
175177
}
176178
llvm::reportFatalUsageError("Invalid qubit index");
177179
}

0 commit comments

Comments
 (0)