Mercury Bugs - mercury
View Issue Details
0000113mercuryBugpublic2009-10-13 02:332009-10-17 03:56
Reporterjuliensf 
Assigned Tozs 
PrioritynormalSeverityminorReproducibilityalways
StatusresolvedResolutionfixed 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0000113: abort during purity checking.
DescriptionThe attached program results in a compiler abort.
It looks as though the compiler should not be proceeding to purity checking
in the presence of earlier errors.

The output from mmc -V is below.
Additional Information% Parsing file `bug113' and imported interfaces...
% Reading file `bug113'... successful parse.
% Reading interface for module `builtin.int'... successful parse.
% Reading interface for module `bool.int'... successful parse.
% Reading interface for module `list.int'... successful parse.
% Reading interface for module `exception.int'... successful parse.
% Reading interface for module `int.int'... successful parse.
% Reading interface for module `string.int'... successful parse.
% Reading interface for module `private_builtin.int'... successful parse.
% Reading short interface for module `enum.int2'... successful parse.
% Reading short interface for module `pretty_printer.int2'... successful parse.
% Reading short interface for module `term.int2'... successful parse.
% Reading short interface for module `io.int2'... successful parse.
% Reading short interface for module `deconstruct.int2'... successful parse.
% Reading short interface for module `stream.int2'... successful parse.
% Reading short interface for module `type_desc.int2'... successful parse.
% Reading short interface for module `univ.int2'... successful parse.
% Reading short interface for module `map.int2'... successful parse.
% Reading short interface for module `bitmap.int2'... successful parse.
% Reading short interface for module `char.int2'... successful parse.
% Reading short interface for module `maybe.int2'... successful parse.
% Reading short interface for module `ops.int2'... successful parse.
% Reading short interface for module `time.int2'... successful parse.
% Reading short interface for module `construct.int2'... successful parse.
% Reading short interface for module `rtti_implementation.int2'... successful parse.
% Reading short interface for module `assoc_list.int2'... successful parse.
% Reading short interface for module `set.int2'... successful parse.
% Reading short interface for module `tree234.int2'... successful parse.
% Reading short interface for module `pair.int2'... successful parse.
% Reading short interface for module `stm_builtin.int2'... successful parse.
% Reading short interface for module `store.int2'... successful parse.
% Reading short interface for module `array.int2'... successful parse.
% Reading short interface for module `random.int2'... successful parse.
% Reading short interface for module `set_ordlist.int2'... successful parse.
% Module qualifying items...
bug113.m:001: In module `bug113':
bug113.m:001: warning: module `list' is imported in the interface, but is not
bug113.m:001: used in the interface.
% done.
% Expanding equivalence types...
% done.
% Converting parse tree to hlds...
% Processing clause 1 for function `bug113.new/1'...
% Processing clause 1 for function `bug113.new/2'...
bug113.m:036: Error: clause for function `bug113.new'/1
bug113.m:036: without preceding `func' declaration.
bug113.m:038: Error: clause for function `bug113.new'/2
bug113.m:038: without preceding `func' declaration.
% done.
% Writing auto-dependency file `bug113.d'... done.
% Checking typeclasses...
% Checking instance declaration types...
% Checking typeclass instances...
% Checking for cyclic classes...
% Checking for missing concrete instances...
% Checking functional dependencies on instances...
% Checking typeclass constraints...
% Checking typeclass constraints on unification predicate for type bug113.bitmap
% Checking typeclass constraints on comparison predicate for type bug113.bitmap
% Checking typeclass constraints on unification predicate for type bug113.foo
% Checking typeclass constraints on comparison predicate for type bug113.foo
% Checking typeclass constraints on function `bug113.new'/1
% Checking typeclass constraints on function `bug113.new'/2
% Checking that insts have matching types... done.
% Type-checking...
% Type-checking clauses...
% Type-checking unification predicate for type deconstruct.maybe_arg
% Inferring type of function `bug113.new'/1
% Inferring type of function `bug113.new'/2
% Type-checking predicate `list.TypeSpecOf__pred__member__[T = var(V_2)]'/2
% Type-checking predicate `list.TypeSpecOf__pred__merge__[T = var(V_2)]'/3
% Type-checking predicate `list.TypeSpecOf__pred__merge_and_remove_dups__[T = var(V_2)]'/3
% Type-checking function `list.TypeSpecOf__pred_or_func__merge_and_remove_dups__[T = var(V_2)]'/2
% Type-checking function `list.TypeSpecOf__pred_or_func__remove_adjacent_dups__[T = var(V_2)]'/1
% Type-checking predicate `list.TypeSpecOf__pred_or_func__remove_adjacent_dups__[T = var(V_2)]'/2
% Type-checking predicate `list.TypeSpecOf__pred__sort__[T = var(V_2)]'/2
% Type-checking function `list.TypeSpecOf__pred_or_func__sort__[T = var(V_2)]'/1
% Type-checking function `list.TypeSpecOf__pred_or_func__sort_and_remove_dups__[T = var(V_2)]'/1
% Type-checking predicate `list.TypeSpecOf__pred_or_func__sort_and_remove_dups__[T = var(V_2)]'/2
bug113.m:036: Inferred :- func new(T1) = T2.
bug113.m:040: In clause for function `new'/2:
bug113.m:040: error: undefined symbol `throw_bitmap_error/1'.
bug113.m:042: In clause for function `new'/2:
bug113.m:042: error: undefined symbol `initializer/1'.
bug113.m:043: In clause for function `new'/2:
bug113.m:043: error: undefined symbol `initialize_bitmap/3'.
bug113.m:043: In clause for function `new'/2:
bug113.m:043: in argument 1 of functor `initialize_bitmap/3':
bug113.m:043: error: undefined symbol `allocate_bitmap/1'.
bug113.m:044: In clause for function `new'/2:
bug113.m:044: error: undefined symbol `clear_filler_bits/1'.
% Program contains type error(s).
% Purity-checking clauses...
% Purity-checking unification predicate for type bug113.bitmap
% Purity-checking comparison predicate for type bug113.bitmap
% Purity-checking unification predicate for type bug113.foo
% Purity-checking comparison predicate for type bug113.foo
% Purity-checking function `bug113.new'/1
Uncaught Mercury exception:
Software Error: prog_type.m: Unexpected: type_to_ctor_and_args_det: type_to_ctor_and_args failed
Stack dump not available in this grade.
TagsNo tags attached.
Attached Files? bug113.m (1,504) 2009-10-13 02:33
https://bugs.mercurylang.org/file_download.php?file_id=84&type=bug

Notes
(0000211)
zs   
2009-10-17 03:56   
Fix committed 16 Oct 2009.

Issue History
2009-10-13 02:33juliensfNew Issue
2009-10-13 02:33juliensfFile Added: bug113.m
2009-10-17 00:13zsStatusnew => assigned
2009-10-17 00:13zsAssigned To => zs
2009-10-17 03:56zsNote Added: 0000211
2009-10-17 03:56zsStatusassigned => resolved
2009-10-17 03:56zsResolutionopen => fixed