Compiling tcc on Windows x64 using gcc, I get:

 

../tccpe.c:1806:26: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]

         pe->start_addr = (DWORD)tcc_get_symbol_err(s1, start_symbol);

 

On Windows, DWORD is a 32bit value, you can't cast a 64bit pointer to a
32bit integer because you may lose bits.

I had a quick look at tccpe and I can't decide myself from
http://msdn.microsoft.com/library/windows/hardware/gg463125 if pe_info is
tcc specific or Windows well know structure.

 

As far I understand, DWORD start_addr should better be defined as ADDR3264
IFF pe_info is a proprietaray tcc struct that helps PE.

 

Otherwise, if by design, start_addr must be 32 value (address resides on
first 4Gb address space) you'de better change the code below

 

../tccpe.c:1806:26: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]

         // start_symbol resides on the first 4Gb

         pe->start_addr = (DWORD)(size_t)tcc_get_symbol_err(s1,
start_symbol);

 

Christian

_______________________________________________
Tinycc-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/tinycc-devel

Reply via email to