On OG12, the OpenMP deep-mapping support added a callback procedure to the vtable. That one did not handle error recovery well (ICE when a CLASS component as not (class_)ok. The attached patch has been committed as https://gcc.gnu.org/g:9c18db65914a751e4a1d9330ccc1659fe5ef270d and applies only to OG12 (= git branch devel/omp/gcc-12) as mainline does not have this code (yet). * * * The plan is to upstream the deep-mapping support, i.e. mapping of allocatable components. The current OG12 implementation handles both mapping the declared type and the dynamic type, the latter requires the wrapper, generated by generate_callback_wrapper. I plan to upstream first the static part - and only then think about the wrapper. I think the wrapper could be useful for coarrays as well - namely, for the user-defined reduction, but I have not fully thought about it. It would break the ABI as the vtable gets another entry before the type-bound procedures, which is why I am a bit hesitant; it it gets merged, we it would be the opportunity to change some other things as well - like: generating the CLASS functions/vtable only when used. (→ weak symbols to permit it in multiple translation units; storing the fact that it has been generated in the module.) But that's offtopic. Tobias ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955