2024-06-24 05:57 AEST

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0000189mercuryBugpublic2011-03-16 17:10
Assigned Tojuliensf 
Product Version 
Target VersionFixed in Version 
Summary0000189: foreign_enum is not 64-bit safe
DescriptionThe 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 InformationAs a workaround, one can cast foreign enum values to MR_int_least32_t before passing to Mercury.
TagsNo tags attached.
Attached Files




juliensf (administrator)

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
+Issue History