diff --git a/flang/include/flang/Optimizer/Dialect/FIROps.td b/flang/include/flang/Optimizer/Dialect/FIROps.td --- a/flang/include/flang/Optimizer/Dialect/FIROps.td +++ b/flang/include/flang/Optimizer/Dialect/FIROps.td @@ -2870,7 +2870,7 @@ }]; } -def fir_DTEntryOp : fir_Op<"dt_entry", []> { +def fir_DTEntryOp : fir_Op<"dt_entry", [HasParent<"DispatchTableOp">]> { let summary = "map entry in a dispatch table"; let description = [{ diff --git a/flang/test/Fir/convert-to-llvm-invalid.fir b/flang/test/Fir/convert-to-llvm-invalid.fir --- a/flang/test/Fir/convert-to-llvm-invalid.fir +++ b/flang/test/Fir/convert-to-llvm-invalid.fir @@ -93,3 +93,10 @@ %0 = fir.gentypedesc !fir.type return } + +// ----- + +// Verify that `fir.dt_entry` requires a parent op + +// expected-error@+1{{'fir.dt_entry' op expects parent op 'fir.dispatch_table'}} +fir.dt_entry "method", @method_impl