title: Argument of type uint64_t is incompatible with parameter of type void*
body: <p>I have a function foo(void* pBuf). I need to pass it a 64 bit address but I can't seem to get the right typecast when I'm passing by value.</p>
  
  <p>Example: foo(address). Where- uint64_t address=0x00000000DEADBEEF</p>
  
  <p>EDIT: Compiling using an ARM compiler. </p>
  
  <pre><code>uint64_t foo(void *pBuf){
      uint64_t retAddr = (uint64_t) pBuf;
      retAddr += 0x100000;
      return retAddr;
  }
  </code></pre>
  
  <p>I'm on a 32-bit ARM and <code>sizeof(void *)</code> is <code>4</code></p>
  
  <p>Clarification: Why I needed a 64-bit address on a 32-bit ARM?
  Because my memory map uses 36-bit addressing.</p>