There seems to be a problem with AT_term_to_pointer on 64bit platform. The following test demonstrates the issue. I fixed the problem temporarily by taking the AT_term_to_pointer function out, renaming it, and using in directly in our transformation libraries. This suggests to me that it might be a compiler flags issue, but I’m not entirely sure.

void test2()
{
FILE * fp = 0x8000E260;
ATerm t;
t = AT_pointer_to_term((void ) fp);
printf("fp = 0x%llX
",fp);
FILE * fp2 = (FILE
) AT_term_to_pointer(t);
printf("fp2 = 0x%llX
",fp2);
fp2 = (((unsigned long long) fp2 « 32) » 32);
printf("fp2 changed = 0x%llX
",fp2);
}

Submitted on 16 January 2009 at 17:28

On 17 January 2009 at 23:48 Jira commented:

STR-764, karltk:
Which version of gcc are you using (gcc –version)? I’ve recently discovered that gcc 4.3 provides a few new bugs for us.

Log in to post comments