to my understanding the left side breaks down as follows:
(char)hash_ptr.parm.v.p, the char means to interpret the 'hash_ptr.parm.v.p as a pointer to an 8 bit character.
The -- before it says to decrement the pointer by one, the value of hash_ptr.parm.v.p is changed. i.e. go backwards one character position.
The leading * mean to overwrite the character that is pointed at by hash_ptr.parm.v.p is overwritten by the new value.
Migrating between version of C, the most common problems I have seen is the use of int (which varies), and the size of a pointer.
Furthermore, when I have migrated code before, I have often encountered the case where in the migration a latent bug was discovered, usually involving the stack some how.
The -- before it says to decrement the pointer by one, the value of hash_ptr.parm.v.p is changed. i.e. go backwards one character position.
The leading * mean to overwrite the character that is pointed at by hash_ptr.parm.v.p is overwritten by the new value.
Migrating between version of C, the most common problems I have seen is the use of int (which varies), and the size of a pointer.
Furthermore, when I have migrated code before, I have often encountered the case where in the migration a latent bug was discovered, usually involving the stack some how.
I wish you the best of luck.