View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
---|---|---|---|---|---|---|---|---|---|
0000271 | mercury | Bug | public | 2012-12-31 12:03 | 2013-06-28 15:44 | ||||
Reporter | pbone | ||||||||
Assigned To | pbone | ||||||||
Priority | high | Severity | major | Reproducibility | sometimes | ||||
Status | closed | Resolution | fixed | ||||||
Platform | x86_64 | OS | Linux | OS Version | Debian 6.0.6 | ||||
Product Version | |||||||||
Target Version | Fixed in Version | ||||||||
Summary | 0000271: Polymorphism related compiler crash. | ||||||||
Description | Some MCit code crashes the polymorphism pass of the the compiler. This occurs on both the 12.08 and main branches. | ||||||||
Steps To Reproduce | I'll put together a small test case. | ||||||||
Tags | No tags attached. | ||||||||
Attached Files |
|
Relationships | ||||||
|
Notes | |
pbone (administrator) 2013-01-04 11:53 |
Bug271 is caused by the handling of multiple typeclass infos for the same type where existentially typed variables are also present. When the compiler knows that a typeclass info value is a constant it is allocated statically on backends that support this. When the typeclass info value is seen a second time (on any execution path) the previously created static value is used for the typeclass info. However, if a predicate call's arguments include both a constrained universally quantified variable, and an existentially quantified variable, then polymorphism.m attempts to create a new value, regardless of whether there is an existing value. When it records the new value in the table of constant typeclass instance values, it crashes as this key is already present. |
pbone (administrator) 2013-05-22 13:10 |
A fix for this was committed to the master and 13.05 branches some time ago. |
Issue History | |||
Date Modified | Username | Field | Change |
---|---|---|---|
2012-12-31 12:03 | pbone | New Issue | |
2012-12-31 12:03 | pbone | Status | new => assigned |
2012-12-31 12:03 | pbone | Assigned To | => pbone |
2013-01-04 11:52 | pbone | File Added: bug271.m | |
2013-01-04 11:53 | pbone | Note Added: 0000490 | |
2013-05-22 13:10 | pbone | Note Added: 0000524 | |
2013-05-22 13:10 | pbone | Status | assigned => closed |
2013-05-22 13:10 | pbone | Resolution | open => fixed |
2013-06-28 15:44 | pbone | Relationship added | related to 0000187 |