Bug#325357: vrweb: FTBFS on 64 bit arches: cast from 'AnyLight*' to 'int' loses precision
[Kurt Roeckx]
> Your package is failing to build on 64 bit arches with the following
> error:
Heh, I guess it always was broken, but no-one used it on 64-bit archs. :)
> It's trying to print the address. In C, with printf, you'd use a %p
> for it. I have no idea if std::cout has something simular.
Is this the only place this is happening? Did it compile when this
line is fixed? Is this the only 64-bit problem in this code?
> I think the easiest way to fix it would be cast it to an intptr_t.
The code in question is debug output. I guess it is trying to print
out a pointer, yes. Why not just drop the cast completely?
FaceAttr* faceattr = new FaceAttr(vertex_num, vertexlist_wc,
0 /*normal_num*/, normallist_wc);
[...]
std::cout << "addr of light_: " << faceattr->light() << std::endl;
* std::cout << int (*(faceattr->light())) << std::endl;
faceattr->print();
faceattr->light() returns 'AnyLight**', and thus this line try to
print 'AnyLight*'. If it can porint 'AnyLight**', it should be
capable of printing 'AnyLight*' too.
Reply to: