Ticket #1855 (new feature)

Opened 4 years ago

Add UINTPTR type into parrot.

Reported by: bacek Owned by:
Priority: normal Milestone:
Component: core Version: master
Severity: medium Keywords:
Cc: Language:
Patch status: Platform:

Description

Hello.

For bit manipulations on pointers we do need integral type to hold it. In C99 it's declared as uintval_t. Unfortunately we have to support C89 which doesn't have such declaration. Solution is to provide own define.

Example of usage is in parrot/parrot.h:

 * NOTE!  UINTVAL is incorrect below.  It should be UINTPTR or something like
 * that. The equivalent of C99's uintptr_t- a non-pointer data type that can
 * hold a pointer.
 */
#define D2FPTR(x) UINTVAL2PTR(funcptr_t, PTR2UINTVAL(x))
#define F2DPTR(x) UINTVAL2PTR(void *, PTR2UINTVAL((funcptr_t) (x)))
Note: See TracTickets for help on using tickets.