%---------------------------------------------------------------------------% % vim: ts=4 sw=4 et ft=mercury %---------------------------------------------------------------------------% % % A type_info cell was not constructed statically by var_locn.m. % It caused a compiler abort because that differed from the % construct_statically hint set by mark_static_terms.m. % %---------------------------------------------------------------------------% :- module bug457. :- interface. :- import_module io. :- pred wrapper(pred(io, io), io, io). :- mode wrapper(in(pred(di, uo) is cc_multi), di, uo) is cc_multi. :- implementation. :- import_module exception. wrapper(Pred, !IO) :- Closure = (pred({}::out, IO0::di, IO::uo) is cc_multi :- Pred(IO0, IO) ), try_io(Closure, _TryResult, !IO). %---------------------------------------------------------------------------%