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 @@ -2868,7 +2868,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 @@ -27,3 +27,10 @@ fir.dispatch_table @dispatch_tbl { fir.dt_entry "method", @method_impl } + +// ----- + +// 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