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(a)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