View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
---|---|---|---|---|---|---|---|---|---|
0000189 | mercury | Bug | public | 2011-03-16 04:35 | 2011-03-16 17:10 | ||||
Reporter | colanderman | ||||||||
Assigned To | juliensf | ||||||||
Priority | normal | Severity | minor | Reproducibility | always | ||||
Status | resolved | Resolution | fixed | ||||||
Product Version | |||||||||
Target Version | Fixed in Version | ||||||||
Summary | 0000189: foreign_enum is not 64-bit safe | ||||||||
Description | The definition of MR_ForeignEnumFunctorDesc in mercury_type_info.h assumes a 32-bit word size. This causes problems with foreign enum values which have bit 31 set, as their Mercury counterparts are incorrectly sign-extended, causing matching to fail. | ||||||||
Additional Information | As a workaround, one can cast foreign enum values to MR_int_least32_t before passing to Mercury. | ||||||||
Tags | No tags attached. | ||||||||
Attached Files |
|
Notes | |
juliensf (administrator) 2011-03-16 17:10 |
Fix committed. The field in MR_ForeignEnumFunctorDesc should have had type MR_Integer, not MR_int_least32_t. |
Issue History | |||
Date Modified | Username | Field | Change |
---|---|---|---|
2011-03-16 04:35 | colanderman | New Issue | |
2011-03-16 11:01 | juliensf | Status | new => assigned |
2011-03-16 11:01 | juliensf | Assigned To | => juliensf |
2011-03-16 17:10 | juliensf | Note Added: 0000316 | |
2011-03-16 17:10 | juliensf | Status | assigned => resolved |
2011-03-16 17:10 | juliensf | Resolution | open => fixed |