Hi,

Spent a little time looking into the source of all the JIT warnings on
Win32.  It appears the MS VC++ compiler is emitting warnings on lines like
this:-

*(pc++) = 0x8b;

Which look something like:-

warning C4305: '=' : truncation from 'const int ' to 'char '

Changing these lines to:-

*(pc++) = (char) 0x8b;

e.g. explicitly casting to a char, clears up the warnings.

I've managed to track down the vast majority of these and put the casts in.
I've missed a few (and try as I might, I can't find them), but 60 warnings
is somewhat better than 2500.  :-)

I've attached the diff for the changes.  Please note - this does not fix
JIT, it's still broken because:-

src\jit_cpu.c(95) : warning C4013: 'Parrot_exec_add_text_rellocation'
undefined; assuming extern returning int
src\jit_cpu.c(95) : error C2065: 'RTYPE_COM' : undeclared identifier
src\jit_cpu.c(149) : error C2065: 'EXEC_CALLDISP' : undeclared identifier
src\jit_cpu.c(166) : error C2065: 'RTYPE_DATA' : undeclared identifier

I don't know the system well enough to know where to start looking for
these, so I'll leave that to somebody far wiser than I.  ;-)

As always, hope this helps.

Jonathan

Attachment: jitemith.diff
Description: Binary data

Reply via email to