https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124179
--- Comment #3 from Liam Powell <liam at liampwll dot com> --- I think I saw the error message and then went looking at the RM with the preconception that procedures in general were already allowed there. I didn't really think about the "or (a view of) a primitive subprogram of a limited interface" which explains why the Dynamic Semantics rule is actually there. Obviously we can not know at compile time if a call dispatches to an entry or a procedure as a task or protected type can implement an interface so we have to account for both. There's also a hole in ACATS testing here (and GNAT as a whole) in that there's no test to ensure that the abortable region never starts when an interface is implemented by a procedure, or just limited interfaces in asynchronous_select at all, however that does appear to work as expected based on poking at it for a few minutes. As an aside, my patch broke interfaces implemented by tasks.
