%-----------------------------------------------------------------------------% % vim: ts=4 sw=4 et tw=0 wm=0 ft=mercury %-----------------------------------------------------------------------------% % % In high-level C nogc grades, e.g. hlc, hl, hlc_nest, or hl_nest, the % following program causes the compiler to abort with: % % Software Error: ml_disj_gen.m: Unexpected: ml_gen_disj: single disjunct % % Compile with: mmc --grade hlc -C % The problem goes away if heap reclamation on failure is disabled, e.g. % the option --no-reclaim-heap-on-failure is enabled. % % This problem does not (appear) to affect the low-level nogc grades, % % This test case is derived from the function bits/3 in library/bitmap.m. % %-----------------------------------------------------------------------------% :- module bug109. :- interface. %-----------------------------------------------------------------------------% :- func bits(int) = int. %-----------------------------------------------------------------------------% %-----------------------------------------------------------------------------% :- implementation. :- import_module int. %-----------------------------------------------------------------------------% bits(NumBits) = Result :- ( if ( NumBits < 0 ; X = int.bits_per_int, NumBits > X ) then Result = 10 else Result = 42 ). %-----------------------------------------------------------------------------% %-----------------------------------------------------------------------------%