Mercury Bugs - mercury
View Issue Details
0000044mercuryBugpublic2008-02-07 16:442008-02-20 14:05
Reporterjuliensf 
Assigned Tozs 
PriorityhighSeveritymajorReproducibilityalways
StatusresolvedResolutionfixed 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0000044: compiler abort in debug grades
DescriptionThe attached program causes the compiler to abort in (decl)debug grades with the
following error:

Uncaught Mercury exception:
Software Error: llds_out.m: Unexpected: stack var out of range

Compile with:

mmc --grade asm_fast.gc.tr.debug -C fzn_debug_abort.m
TagsNo tags attached.
Attached Files? fzn_debug_abort.m (2,638) 2008-02-07 16:44
https://bugs.mercurylang.org/file_download.php?file_id=37&type=bug

Notes
(0000074)
zs   
2008-02-07 21:27   
There are two reasons for the abort. First, unify_gen.m wasn't checking whether a variable it was adding to a closure was of dummy type or not. (The abort is when writing out the code that constructs the closure.) I have a fix for that. Second,
the code for recognizing whether a type is dummy or not recognized only two cases: builtin dummy types such as io.state, and types with one function symbol of arity zero. In this program, there is a notag wrapper around a dummy type. Since the representation of a notag type is always the same as the type it wraps, this notag type should be recognized as a dummy type too. I am still working on that.
(0000078)
zs   
2008-02-20 14:05   
fix committed feb 12.

Issue History
2008-02-07 16:44juliensfNew Issue
2008-02-07 16:44juliensfFile Added: fzn_debug_abort.m
2008-02-07 20:34zsStatusnew => assigned
2008-02-07 20:34zsAssigned To => zs
2008-02-07 21:27zsNote Added: 0000074
2008-02-20 14:05zsStatusassigned => resolved
2008-02-20 14:05zsResolutionopen => fixed
2008-02-20 14:05zsNote Added: 0000078