PDA

View Full Version : Compile Error


vsab
02-17-2015, 08:22 AM
(moved from dev)

gcc 4.8.2 - latest code. Recently it looks like I have a ton more warnings than I did before regarding logging, but it bums out here:-

/home/vsab/eqemu/zone/spawngroup.cpp: In member function ‘uint32 SpawnGroup::GetNPCType()’:
/home/vsab/eqemu/zone/spawngroup.cpp:54:80: error: cast from ‘SpawnGroup*’ to ‘uint32 {aka unsigned int}’ loses precision [-fpermissive]
Log.Out(Logs::General, Logs::None, "SpawnGroup[%08x]::GetNPCType()", (uint32) this);
^
make[2]: *** [zone/CMakeFiles/zone.dir/spawngroup.cpp.o] Error 1
make[1]: *** [zone/CMakeFiles/zone.dir/all] Error 2
make: *** [all] Error 2

Any ideas how I can get it to compile?

jdoran
02-17-2015, 12:25 PM
There is a %p escape useful for printing pointers. Pointers do not always fit in 32-bit integers.

vsab
02-17-2015, 05:44 PM
Nice, using %p and removing the cast fixed the compile (casting in uint64 worked too....), haven't seen the actual output yet....


Log.Out(Logs::General, Logs::None, "SpawnGroup[%p]::GetNPCType()", this);