Testing here shows:
  #include <stdint.h>
  #include <stdio.h>


  void *
  bar(void)
  {
      return (void *)0xffffffff12345678;
  }


  int
  main(int argc, char **argv)
  {
      void *ret;

      ret = bar();
      printf("Ret is 0x%llx\n", ret);

      return 0;
  }
compile with:
  tcc -m64 -o bar.exe bar.c
and run as:
  bar  Ret is 0xffffffff12345678

so this seems to be fine.
--Fred
   
 On Sunday, June 25, 2023 at 02:34:11 PM EDT, Herman ten Brugge via 
Tinycc-devel <tinycc-devel@nongnu.org> wrote:  
 
  On 6/25/23 09:45, ljs wrote:
  
 
 //in app  void* Create() {       return 0xffffffff12345678; }  
tcc_add_symbol("Create",Create); 
  //in tcc script void * ret = Create(); //in 64 bit,ret == 
0x0000000012345678;not 0xffffffff12345678  If do not understand this.
 Can you give a small sample program that I can compile to show your problem.
 _______________________________________________
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tinycc-devel
  
_______________________________________________
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tinycc-devel

Reply via email to