From: David Kunzman (kunzman2_at_uiuc.edu)
Date: Tue Jun 28 2005 - 12:29:01 CDT
There does not seem to be a prototype for this function (and a few 
others).  As a result, the compiler is assuming the return type of the 
function is an "int".  When the compiler (icc in the case we were 
looking at) does the cast, it tries to convert the "int" that was 
returned (which is really a 64-bit pointer) into a "char*".  Since the 
compiler "thinks" the returned value is only 32-bits, it is sign-extends 
the 32-bit value to fit the 64-bit register which wipes out the upper 
32-bits of the pointer making it invalid.  A fix should be checked in soon.
Dave Kunzman
Brian Bennion wrote:
>Hi Tim,
>I saw your posting on the namd wiki and want you to know that I to have
>seen this problem or one very similar in mm_mallac.  David Kunzman
>(charm++ developer) worked on it for a couple of days last week.
>
>I do not know what the final results were, other than the compiler makes
>some default assumptions about casting a void * to a char *.  It instead
>casts it to an int and wipes out half of the memory address.  So what is
>actually returned is entirely bogus.
>
>What compiler are you using?
>
>Brian
>
>
> ************************************************
>  Brian Bennion, Ph.D.
>  Bioscience Directorate
>  Lawrence Livermore National Laboratory
>  P.O. Box 808, L-448    bennion1_at_llnl.gov
>  7000 East Avenue       phone: (925) 422-5722
>  Livermore, CA  94550   fax:   (925) 424-6605
>************************************************
>
>  
>
This archive was generated by hypermail 2.1.6 : Wed Feb 29 2012 - 15:39:38 CST