| 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 |


