Skip to content

Commit 2b4e10b

Browse files
committed
Revert "remove dynamic_casts due to RTTI issue"
This reverts commit dc13927.
1 parent dc13927 commit 2b4e10b

2 files changed

Lines changed: 4 additions & 4 deletions

File tree

mlir/lib/Dialect/MQTRef/Translation/ImportQuantumComputation.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,7 @@ static void addMeasureOp(mlir::OpBuilder& builder,
289289
const llvm::SmallVector<mlir::Value>& qubits,
290290
const BitIndexVec& bitMap) {
291291
const auto& measureOp =
292-
static_cast<const qc::NonUnitaryOperation&>(operation);
292+
dynamic_cast<const qc::NonUnitaryOperation&>(operation);
293293
const auto& targets = measureOp.getTargets();
294294
const auto& classics = measureOp.getClassics();
295295
for (std::size_t i = 0; i < targets.size(); ++i) {
@@ -343,7 +343,7 @@ addBlockOps(mlir::OpBuilder& builder, const qc::Operation* operationInBlock,
343343
const BitIndexVec& bitMap) {
344344
if (operationInBlock->isCompoundOperation()) {
345345
for (const auto& operation :
346-
static_cast<const qc::CompoundOperation&>(*operationInBlock)) {
346+
dynamic_cast<const qc::CompoundOperation&>(*operationInBlock)) {
347347
if (addOperation(builder, *operation, qubits, bitMap).failed()) {
348348
return llvm::failure();
349349
}
@@ -422,7 +422,7 @@ addIfElseOp(mlir::OpBuilder& builder, const qc::Operation& op,
422422
const llvm::SmallVector<mlir::Value>& qubits,
423423
const BitIndexVec& bitMap) {
424424
const auto loc = builder.getUnknownLoc();
425-
const auto& ifElse = static_cast<const qc::IfElseOperation&>(op);
425+
const auto& ifElse = dynamic_cast<const qc::IfElseOperation&>(op);
426426

427427
const auto* thenOp = ifElse.getThenOp();
428428
// Canonicalization should have removed empty then blocks

mlir/lib/Dialect/QC/Translation/TranslateQuantumComputationToQC.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ static void addMeasureOp(QCProgramBuilder& builder,
194194
const SmallVector<Value>& qubits,
195195
const BitIndexVec& bitMap) {
196196
const auto& measureOp =
197-
static_cast<const ::qc::NonUnitaryOperation&>(operation);
197+
dynamic_cast<const ::qc::NonUnitaryOperation&>(operation);
198198
const auto& targets = measureOp.getTargets();
199199
const auto& classics = measureOp.getClassics();
200200

0 commit comments

Comments
 (0)