On Wed, Feb 24, 2016 at 11:38:36PM +0100, Harald Welte wrote:
On Wed, Feb 24, 2016 at 08:07:21PM +0100, Neels Hofmeyr wrote:
On my 64bit system, I get warnings about casting int to pointer of different size and vice versa. However, below patch only shifts the warnings to 32bit systems, right? · I don't think so. 'long' typically corresponds to the pointer size, at least based on my experience. Of course the C standard doesn't give you any guarantees and just states that it should be at least the size of a signed 32bit integer. · according to page 6 of http://www.agner.org/optimize/calling_conventions.pdf the only practical exception seems to be windows, where on 64bit even a 'long' is only 32bit ;)
can't do that then, can we ;) On Thu, Feb 25, 2016 at 10:03:21AM +0100, Jacob wrote:
What about using uintptr_t from stdint.h ?
stdint.h:typedef unsigned long int uintptr_t; So that would work indeed. I'd have interpreted the name to mean unsigned int* but it seems to be made for this specific case. But I agree that the case per se is still odd: On Wed, Feb 24, 2016 at 11:38:36PM +0100, Harald Welte wrote:
The more interesting question is probably why is vty->index not pointing to 'struct osmo_msc_data' in the first place? That's what we typically use, rather than storing integers in the pointer and then perfomring lookups on that. Holger?
/me escalating to hfreyther ~Neels -- - Neels Hofmeyr <nhofmeyr@sysmocom.de> http://www.sysmocom.de/ ======================================================================= * sysmocom - systems for mobile communications GmbH * Alt-Moabit 93 * 10559 Berlin, Germany * Sitz / Registered office: Berlin, HRB 134158 B * Geschäftsführer / Managing Directors: Holger Freyther, Harald Welte