#1855: Add UINTPTR type into parrot.
---------------------+------------------------------------------------------
 Reporter:  bacek    |       Owner:        
     Type:  feature  |      Status:  new   
 Priority:  normal   |   Milestone:        
Component:  core     |     Version:  master
 Severity:  medium   |    Keywords:        
     Lang:           |       Patch:        
 Platform:           |  
---------------------+------------------------------------------------------
 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)))
 }}}

-- 
Ticket URL: <https://trac.parrot.org/parrot/ticket/1855>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets

Reply via email to