Skip to content

Commit fb0400f

Browse files
authored
[mlir][emitc] Fix bug in dereference translation (#171028)
The op was not added to `hasDeferredEmission()` when introduced by f17abc2, causing incorrect translation.
1 parent a1ba1fa commit fb0400f

File tree

2 files changed

+3
-2
lines changed

2 files changed

+3
-2
lines changed

mlir/lib/Target/Cpp/TranslateToCpp.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,8 @@ struct CppEmitter {
333333

334334
/// Determine whether expression \p op should be emitted in a deferred way.
335335
static bool hasDeferredEmission(Operation *op) {
336-
return isa_and_nonnull<emitc::GetGlobalOp, emitc::LiteralOp, emitc::MemberOp,
336+
return isa_and_nonnull<emitc::DereferenceOp, emitc::GetGlobalOp,
337+
emitc::LiteralOp, emitc::MemberOp,
337338
emitc::MemberOfPtrOp, emitc::SubscriptOp,
338339
emitc::GetFieldOp>(op);
339340
}

mlir/test/Target/Cpp/common-cpp.mlir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ func.func @address_of() {
118118
// CHECK-LABEL: void dereference
119119
// CHECK-SAME: (int32_t* [[ARG0:[^ ]*]]) {
120120
func.func @dereference(%arg0: !emitc.ptr<i32>) {
121-
// CHECK: int32_t [[V1:[^ ]*]] = *[[ARG0]];
121+
// CHECK-NEXT: int32_t [[V1:[^ ]*]] = *[[ARG0]];
122122
%2 = emitc.dereference %arg0 : !emitc.ptr<i32>
123123
emitc.load %2 : !emitc.lvalue<i32>
124124
return

0 commit comments

Comments
 (0)