bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Update portability doc for CHERI, C23


From: Bruno Haible
Subject: Re: [PATCH] Update portability doc for CHERI, C23
Date: Sat, 02 Dec 2023 11:19:59 +0100

Paul Eggert wrote:
> > Which integer types on CHERI have "holes"?
> 
> intptr_t and uintptr_t, since they consume 128 bits of storage but have 
> only 64 bits of integer value payload.

Oh, indeed. I had through that intptr_t and uintptr_t support normal 128-bit
integer arithmetic, but this is not the case:

================================================================================
#include <stdio.h>
#include <stdint.h>
int main ()
{
  uintptr_t x;
  intptr_t y;
  int i;

  printf ("sizeof = %d %d\n", (int) sizeof (uintptr_t), (int) sizeof 
(intptr_t));
  for (i = 0; i < 128; i++)
    {
      x = (uintptr_t)1 << i;
      printf ("(uintptr_t)1 << %d = 0x%016lx%016lx = 0x%016lx%016lx\n", i,
              (unsigned long)(x >> 64), (unsigned long) x,
              (unsigned long)(x >> 32 >> 32), (unsigned long) x);
    }

  for (i = 0; i < 127; i++)
    {
      y = (intptr_t)1 << i;
      printf ("(intptr_t)1 << %d = 0x%016lx%016lx = 0x%016lx%016lx\n", i,
              (long)(y >> 64), (unsigned long) y,
              (long)(y >> 32 >> 32), (unsigned long) y);
    }
}
================================================================================
produces
================================================================================
sizeof = 16 16
(uintptr_t)1 << 0 = 0x00000000000000010000000000000001 = 
0x00000000000000000000000000000001
(uintptr_t)1 << 1 = 0x00000000000000020000000000000002 = 
0x00000000000000000000000000000002
(uintptr_t)1 << 2 = 0x00000000000000040000000000000004 = 
0x00000000000000000000000000000004
(uintptr_t)1 << 3 = 0x00000000000000080000000000000008 = 
0x00000000000000000000000000000008
(uintptr_t)1 << 4 = 0x00000000000000100000000000000010 = 
0x00000000000000000000000000000010
(uintptr_t)1 << 5 = 0x00000000000000200000000000000020 = 
0x00000000000000000000000000000020
(uintptr_t)1 << 6 = 0x00000000000000400000000000000040 = 
0x00000000000000000000000000000040
(uintptr_t)1 << 7 = 0x00000000000000800000000000000080 = 
0x00000000000000000000000000000080
(uintptr_t)1 << 8 = 0x00000000000001000000000000000100 = 
0x00000000000000000000000000000100
(uintptr_t)1 << 9 = 0x00000000000002000000000000000200 = 
0x00000000000000000000000000000200
(uintptr_t)1 << 10 = 0x00000000000004000000000000000400 = 
0x00000000000000000000000000000400
(uintptr_t)1 << 11 = 0x00000000000008000000000000000800 = 
0x00000000000000000000000000000800
(uintptr_t)1 << 12 = 0x00000000000010000000000000001000 = 
0x00000000000000000000000000001000
(uintptr_t)1 << 13 = 0x00000000000020000000000000002000 = 
0x00000000000000000000000000002000
(uintptr_t)1 << 14 = 0x00000000000040000000000000004000 = 
0x00000000000000000000000000004000
(uintptr_t)1 << 15 = 0x00000000000080000000000000008000 = 
0x00000000000000000000000000008000
(uintptr_t)1 << 16 = 0x00000000000100000000000000010000 = 
0x00000000000000000000000000010000
(uintptr_t)1 << 17 = 0x00000000000200000000000000020000 = 
0x00000000000000000000000000020000
(uintptr_t)1 << 18 = 0x00000000000400000000000000040000 = 
0x00000000000000000000000000040000
(uintptr_t)1 << 19 = 0x00000000000800000000000000080000 = 
0x00000000000000000000000000080000
(uintptr_t)1 << 20 = 0x00000000001000000000000000100000 = 
0x00000000000000000000000000100000
(uintptr_t)1 << 21 = 0x00000000002000000000000000200000 = 
0x00000000000000000000000000200000
(uintptr_t)1 << 22 = 0x00000000004000000000000000400000 = 
0x00000000000000000000000000400000
(uintptr_t)1 << 23 = 0x00000000008000000000000000800000 = 
0x00000000000000000000000000800000
(uintptr_t)1 << 24 = 0x00000000010000000000000001000000 = 
0x00000000000000000000000001000000
(uintptr_t)1 << 25 = 0x00000000020000000000000002000000 = 
0x00000000000000000000000002000000
(uintptr_t)1 << 26 = 0x00000000040000000000000004000000 = 
0x00000000000000000000000004000000
(uintptr_t)1 << 27 = 0x00000000080000000000000008000000 = 
0x00000000000000000000000008000000
(uintptr_t)1 << 28 = 0x00000000100000000000000010000000 = 
0x00000000000000000000000010000000
(uintptr_t)1 << 29 = 0x00000000200000000000000020000000 = 
0x00000000000000000000000020000000
(uintptr_t)1 << 30 = 0x00000000400000000000000040000000 = 
0x00000000000000000000000040000000
(uintptr_t)1 << 31 = 0x00000000800000000000000080000000 = 
0x00000000000000000000000080000000
(uintptr_t)1 << 32 = 0x00000001000000000000000100000000 = 
0x00000000000000000000000100000000
(uintptr_t)1 << 33 = 0x00000002000000000000000200000000 = 
0x00000000000000000000000200000000
(uintptr_t)1 << 34 = 0x00000004000000000000000400000000 = 
0x00000000000000000000000400000000
(uintptr_t)1 << 35 = 0x00000008000000000000000800000000 = 
0x00000000000000000000000800000000
(uintptr_t)1 << 36 = 0x00000010000000000000001000000000 = 
0x00000000000000000000001000000000
(uintptr_t)1 << 37 = 0x00000020000000000000002000000000 = 
0x00000000000000000000002000000000
(uintptr_t)1 << 38 = 0x00000040000000000000004000000000 = 
0x00000000000000000000004000000000
(uintptr_t)1 << 39 = 0x00000080000000000000008000000000 = 
0x00000000000000000000008000000000
(uintptr_t)1 << 40 = 0x00000100000000000000010000000000 = 
0x00000000000000000000010000000000
(uintptr_t)1 << 41 = 0x00000200000000000000020000000000 = 
0x00000000000000000000020000000000
(uintptr_t)1 << 42 = 0x00000400000000000000040000000000 = 
0x00000000000000000000040000000000
(uintptr_t)1 << 43 = 0x00000800000000000000080000000000 = 
0x00000000000000000000080000000000
(uintptr_t)1 << 44 = 0x00001000000000000000100000000000 = 
0x00000000000000000000100000000000
(uintptr_t)1 << 45 = 0x00002000000000000000200000000000 = 
0x00000000000000000000200000000000
(uintptr_t)1 << 46 = 0x00004000000000000000400000000000 = 
0x00000000000000000000400000000000
(uintptr_t)1 << 47 = 0x00008000000000000000800000000000 = 
0x00000000000000000000800000000000
(uintptr_t)1 << 48 = 0x00010000000000000001000000000000 = 
0x00000000000000000001000000000000
(uintptr_t)1 << 49 = 0x00020000000000000002000000000000 = 
0x00000000000000000002000000000000
(uintptr_t)1 << 50 = 0x00040000000000000004000000000000 = 
0x00000000000000000004000000000000
(uintptr_t)1 << 51 = 0x00080000000000000008000000000000 = 
0x00000000000000000008000000000000
(uintptr_t)1 << 52 = 0x00100000000000000010000000000000 = 
0x00000000000000000010000000000000
(uintptr_t)1 << 53 = 0x00200000000000000020000000000000 = 
0x00000000000000000020000000000000
(uintptr_t)1 << 54 = 0x00400000000000000040000000000000 = 
0x00000000000000000040000000000000
(uintptr_t)1 << 55 = 0x00800000000000000080000000000000 = 
0x00000000000000000080000000000000
(uintptr_t)1 << 56 = 0x01000000000000000100000000000000 = 
0x00000000000000000100000000000000
(uintptr_t)1 << 57 = 0x02000000000000000200000000000000 = 
0x00000000000000000200000000000000
(uintptr_t)1 << 58 = 0x04000000000000000400000000000000 = 
0x00000000000000000400000000000000
(uintptr_t)1 << 59 = 0x08000000000000000800000000000000 = 
0x00000000000000000800000000000000
(uintptr_t)1 << 60 = 0x10000000000000001000000000000000 = 
0x00000000000000001000000000000000
(uintptr_t)1 << 61 = 0x20000000000000002000000000000000 = 
0x00000000000000002000000000000000
(uintptr_t)1 << 62 = 0x40000000000000004000000000000000 = 
0x00000000000000004000000000000000
(uintptr_t)1 << 63 = 0x80000000000000008000000000000000 = 
0x00000000000000008000000000000000
(uintptr_t)1 << 64 = 0x00000000000000010000000000000001 = 
0x00000000000000000000000000000001
(uintptr_t)1 << 65 = 0x00000000000000020000000000000002 = 
0x00000000000000000000000000000002
(uintptr_t)1 << 66 = 0x00000000000000040000000000000004 = 
0x00000000000000000000000000000004
(uintptr_t)1 << 67 = 0x00000000000000080000000000000008 = 
0x00000000000000000000000000000008
(uintptr_t)1 << 68 = 0x00000000000000100000000000000010 = 
0x00000000000000000000000000000010
(uintptr_t)1 << 69 = 0x00000000000000200000000000000020 = 
0x00000000000000000000000000000020
(uintptr_t)1 << 70 = 0x00000000000000400000000000000040 = 
0x00000000000000000000000000000040
(uintptr_t)1 << 71 = 0x00000000000000800000000000000080 = 
0x00000000000000000000000000000080
(uintptr_t)1 << 72 = 0x00000000000001000000000000000100 = 
0x00000000000000000000000000000100
(uintptr_t)1 << 73 = 0x00000000000002000000000000000200 = 
0x00000000000000000000000000000200
(uintptr_t)1 << 74 = 0x00000000000004000000000000000400 = 
0x00000000000000000000000000000400
(uintptr_t)1 << 75 = 0x00000000000008000000000000000800 = 
0x00000000000000000000000000000800
(uintptr_t)1 << 76 = 0x00000000000010000000000000001000 = 
0x00000000000000000000000000001000
(uintptr_t)1 << 77 = 0x00000000000020000000000000002000 = 
0x00000000000000000000000000002000
(uintptr_t)1 << 78 = 0x00000000000040000000000000004000 = 
0x00000000000000000000000000004000
(uintptr_t)1 << 79 = 0x00000000000080000000000000008000 = 
0x00000000000000000000000000008000
(uintptr_t)1 << 80 = 0x00000000000100000000000000010000 = 
0x00000000000000000000000000010000
(uintptr_t)1 << 81 = 0x00000000000200000000000000020000 = 
0x00000000000000000000000000020000
(uintptr_t)1 << 82 = 0x00000000000400000000000000040000 = 
0x00000000000000000000000000040000
(uintptr_t)1 << 83 = 0x00000000000800000000000000080000 = 
0x00000000000000000000000000080000
(uintptr_t)1 << 84 = 0x00000000001000000000000000100000 = 
0x00000000000000000000000000100000
(uintptr_t)1 << 85 = 0x00000000002000000000000000200000 = 
0x00000000000000000000000000200000
(uintptr_t)1 << 86 = 0x00000000004000000000000000400000 = 
0x00000000000000000000000000400000
(uintptr_t)1 << 87 = 0x00000000008000000000000000800000 = 
0x00000000000000000000000000800000
(uintptr_t)1 << 88 = 0x00000000010000000000000001000000 = 
0x00000000000000000000000001000000
(uintptr_t)1 << 89 = 0x00000000020000000000000002000000 = 
0x00000000000000000000000002000000
(uintptr_t)1 << 90 = 0x00000000040000000000000004000000 = 
0x00000000000000000000000004000000
(uintptr_t)1 << 91 = 0x00000000080000000000000008000000 = 
0x00000000000000000000000008000000
(uintptr_t)1 << 92 = 0x00000000100000000000000010000000 = 
0x00000000000000000000000010000000
(uintptr_t)1 << 93 = 0x00000000200000000000000020000000 = 
0x00000000000000000000000020000000
(uintptr_t)1 << 94 = 0x00000000400000000000000040000000 = 
0x00000000000000000000000040000000
(uintptr_t)1 << 95 = 0x00000000800000000000000080000000 = 
0x00000000000000000000000080000000
(uintptr_t)1 << 96 = 0x00000001000000000000000100000000 = 
0x00000000000000000000000100000000
(uintptr_t)1 << 97 = 0x00000002000000000000000200000000 = 
0x00000000000000000000000200000000
(uintptr_t)1 << 98 = 0x00000004000000000000000400000000 = 
0x00000000000000000000000400000000
(uintptr_t)1 << 99 = 0x00000008000000000000000800000000 = 
0x00000000000000000000000800000000
(uintptr_t)1 << 100 = 0x00000010000000000000001000000000 = 
0x00000000000000000000001000000000
(uintptr_t)1 << 101 = 0x00000020000000000000002000000000 = 
0x00000000000000000000002000000000
(uintptr_t)1 << 102 = 0x00000040000000000000004000000000 = 
0x00000000000000000000004000000000
(uintptr_t)1 << 103 = 0x00000080000000000000008000000000 = 
0x00000000000000000000008000000000
(uintptr_t)1 << 104 = 0x00000100000000000000010000000000 = 
0x00000000000000000000010000000000
(uintptr_t)1 << 105 = 0x00000200000000000000020000000000 = 
0x00000000000000000000020000000000
(uintptr_t)1 << 106 = 0x00000400000000000000040000000000 = 
0x00000000000000000000040000000000
(uintptr_t)1 << 107 = 0x00000800000000000000080000000000 = 
0x00000000000000000000080000000000
(uintptr_t)1 << 108 = 0x00001000000000000000100000000000 = 
0x00000000000000000000100000000000
(uintptr_t)1 << 109 = 0x00002000000000000000200000000000 = 
0x00000000000000000000200000000000
(uintptr_t)1 << 110 = 0x00004000000000000000400000000000 = 
0x00000000000000000000400000000000
(uintptr_t)1 << 111 = 0x00008000000000000000800000000000 = 
0x00000000000000000000800000000000
(uintptr_t)1 << 112 = 0x00010000000000000001000000000000 = 
0x00000000000000000001000000000000
(uintptr_t)1 << 113 = 0x00020000000000000002000000000000 = 
0x00000000000000000002000000000000
(uintptr_t)1 << 114 = 0x00040000000000000004000000000000 = 
0x00000000000000000004000000000000
(uintptr_t)1 << 115 = 0x00080000000000000008000000000000 = 
0x00000000000000000008000000000000
(uintptr_t)1 << 116 = 0x00100000000000000010000000000000 = 
0x00000000000000000010000000000000
(uintptr_t)1 << 117 = 0x00200000000000000020000000000000 = 
0x00000000000000000020000000000000
(uintptr_t)1 << 118 = 0x00400000000000000040000000000000 = 
0x00000000000000000040000000000000
(uintptr_t)1 << 119 = 0x00800000000000000080000000000000 = 
0x00000000000000000080000000000000
(uintptr_t)1 << 120 = 0x01000000000000000100000000000000 = 
0x00000000000000000100000000000000
(uintptr_t)1 << 121 = 0x02000000000000000200000000000000 = 
0x00000000000000000200000000000000
(uintptr_t)1 << 122 = 0x04000000000000000400000000000000 = 
0x00000000000000000400000000000000
(uintptr_t)1 << 123 = 0x08000000000000000800000000000000 = 
0x00000000000000000800000000000000
(uintptr_t)1 << 124 = 0x10000000000000001000000000000000 = 
0x00000000000000001000000000000000
(uintptr_t)1 << 125 = 0x20000000000000002000000000000000 = 
0x00000000000000002000000000000000
(uintptr_t)1 << 126 = 0x40000000000000004000000000000000 = 
0x00000000000000004000000000000000
(uintptr_t)1 << 127 = 0x80000000000000008000000000000000 = 
0x00000000000000008000000000000000
(intptr_t)1 << 0 = 0x00000000000000010000000000000001 = 
0x00000000000000000000000000000001
(intptr_t)1 << 1 = 0x00000000000000020000000000000002 = 
0x00000000000000000000000000000002
(intptr_t)1 << 2 = 0x00000000000000040000000000000004 = 
0x00000000000000000000000000000004
(intptr_t)1 << 3 = 0x00000000000000080000000000000008 = 
0x00000000000000000000000000000008
(intptr_t)1 << 4 = 0x00000000000000100000000000000010 = 
0x00000000000000000000000000000010
(intptr_t)1 << 5 = 0x00000000000000200000000000000020 = 
0x00000000000000000000000000000020
(intptr_t)1 << 6 = 0x00000000000000400000000000000040 = 
0x00000000000000000000000000000040
(intptr_t)1 << 7 = 0x00000000000000800000000000000080 = 
0x00000000000000000000000000000080
(intptr_t)1 << 8 = 0x00000000000001000000000000000100 = 
0x00000000000000000000000000000100
(intptr_t)1 << 9 = 0x00000000000002000000000000000200 = 
0x00000000000000000000000000000200
(intptr_t)1 << 10 = 0x00000000000004000000000000000400 = 
0x00000000000000000000000000000400
(intptr_t)1 << 11 = 0x00000000000008000000000000000800 = 
0x00000000000000000000000000000800
(intptr_t)1 << 12 = 0x00000000000010000000000000001000 = 
0x00000000000000000000000000001000
(intptr_t)1 << 13 = 0x00000000000020000000000000002000 = 
0x00000000000000000000000000002000
(intptr_t)1 << 14 = 0x00000000000040000000000000004000 = 
0x00000000000000000000000000004000
(intptr_t)1 << 15 = 0x00000000000080000000000000008000 = 
0x00000000000000000000000000008000
(intptr_t)1 << 16 = 0x00000000000100000000000000010000 = 
0x00000000000000000000000000010000
(intptr_t)1 << 17 = 0x00000000000200000000000000020000 = 
0x00000000000000000000000000020000
(intptr_t)1 << 18 = 0x00000000000400000000000000040000 = 
0x00000000000000000000000000040000
(intptr_t)1 << 19 = 0x00000000000800000000000000080000 = 
0x00000000000000000000000000080000
(intptr_t)1 << 20 = 0x00000000001000000000000000100000 = 
0x00000000000000000000000000100000
(intptr_t)1 << 21 = 0x00000000002000000000000000200000 = 
0x00000000000000000000000000200000
(intptr_t)1 << 22 = 0x00000000004000000000000000400000 = 
0x00000000000000000000000000400000
(intptr_t)1 << 23 = 0x00000000008000000000000000800000 = 
0x00000000000000000000000000800000
(intptr_t)1 << 24 = 0x00000000010000000000000001000000 = 
0x00000000000000000000000001000000
(intptr_t)1 << 25 = 0x00000000020000000000000002000000 = 
0x00000000000000000000000002000000
(intptr_t)1 << 26 = 0x00000000040000000000000004000000 = 
0x00000000000000000000000004000000
(intptr_t)1 << 27 = 0x00000000080000000000000008000000 = 
0x00000000000000000000000008000000
(intptr_t)1 << 28 = 0x00000000100000000000000010000000 = 
0x00000000000000000000000010000000
(intptr_t)1 << 29 = 0x00000000200000000000000020000000 = 
0x00000000000000000000000020000000
(intptr_t)1 << 30 = 0x00000000400000000000000040000000 = 
0x00000000000000000000000040000000
(intptr_t)1 << 31 = 0x00000000800000000000000080000000 = 
0x00000000000000000000000080000000
(intptr_t)1 << 32 = 0x00000001000000000000000100000000 = 
0x00000000000000000000000100000000
(intptr_t)1 << 33 = 0x00000002000000000000000200000000 = 
0x00000000000000000000000200000000
(intptr_t)1 << 34 = 0x00000004000000000000000400000000 = 
0x00000000000000000000000400000000
(intptr_t)1 << 35 = 0x00000008000000000000000800000000 = 
0x00000000000000000000000800000000
(intptr_t)1 << 36 = 0x00000010000000000000001000000000 = 
0x00000000000000000000001000000000
(intptr_t)1 << 37 = 0x00000020000000000000002000000000 = 
0x00000000000000000000002000000000
(intptr_t)1 << 38 = 0x00000040000000000000004000000000 = 
0x00000000000000000000004000000000
(intptr_t)1 << 39 = 0x00000080000000000000008000000000 = 
0x00000000000000000000008000000000
(intptr_t)1 << 40 = 0x00000100000000000000010000000000 = 
0x00000000000000000000010000000000
(intptr_t)1 << 41 = 0x00000200000000000000020000000000 = 
0x00000000000000000000020000000000
(intptr_t)1 << 42 = 0x00000400000000000000040000000000 = 
0x00000000000000000000040000000000
(intptr_t)1 << 43 = 0x00000800000000000000080000000000 = 
0x00000000000000000000080000000000
(intptr_t)1 << 44 = 0x00001000000000000000100000000000 = 
0x00000000000000000000100000000000
(intptr_t)1 << 45 = 0x00002000000000000000200000000000 = 
0x00000000000000000000200000000000
(intptr_t)1 << 46 = 0x00004000000000000000400000000000 = 
0x00000000000000000000400000000000
(intptr_t)1 << 47 = 0x00008000000000000000800000000000 = 
0x00000000000000000000800000000000
(intptr_t)1 << 48 = 0x00010000000000000001000000000000 = 
0x00000000000000000001000000000000
(intptr_t)1 << 49 = 0x00020000000000000002000000000000 = 
0x00000000000000000002000000000000
(intptr_t)1 << 50 = 0x00040000000000000004000000000000 = 
0x00000000000000000004000000000000
(intptr_t)1 << 51 = 0x00080000000000000008000000000000 = 
0x00000000000000000008000000000000
(intptr_t)1 << 52 = 0x00100000000000000010000000000000 = 
0x00000000000000000010000000000000
(intptr_t)1 << 53 = 0x00200000000000000020000000000000 = 
0x00000000000000000020000000000000
(intptr_t)1 << 54 = 0x00400000000000000040000000000000 = 
0x00000000000000000040000000000000
(intptr_t)1 << 55 = 0x00800000000000000080000000000000 = 
0x00000000000000000080000000000000
(intptr_t)1 << 56 = 0x01000000000000000100000000000000 = 
0x00000000000000000100000000000000
(intptr_t)1 << 57 = 0x02000000000000000200000000000000 = 
0x00000000000000000200000000000000
(intptr_t)1 << 58 = 0x04000000000000000400000000000000 = 
0x00000000000000000400000000000000
(intptr_t)1 << 59 = 0x08000000000000000800000000000000 = 
0x00000000000000000800000000000000
(intptr_t)1 << 60 = 0x10000000000000001000000000000000 = 
0x00000000000000001000000000000000
(intptr_t)1 << 61 = 0x20000000000000002000000000000000 = 
0x00000000000000002000000000000000
(intptr_t)1 << 62 = 0x40000000000000004000000000000000 = 
0x00000000000000004000000000000000
(intptr_t)1 << 63 = 0x80000000000000008000000000000000 = 
0xffffffffffffffff8000000000000000
(intptr_t)1 << 64 = 0x00000000000000010000000000000001 = 
0x00000000000000000000000000000001
(intptr_t)1 << 65 = 0x00000000000000020000000000000002 = 
0x00000000000000000000000000000002
(intptr_t)1 << 66 = 0x00000000000000040000000000000004 = 
0x00000000000000000000000000000004
(intptr_t)1 << 67 = 0x00000000000000080000000000000008 = 
0x00000000000000000000000000000008
(intptr_t)1 << 68 = 0x00000000000000100000000000000010 = 
0x00000000000000000000000000000010
(intptr_t)1 << 69 = 0x00000000000000200000000000000020 = 
0x00000000000000000000000000000020
(intptr_t)1 << 70 = 0x00000000000000400000000000000040 = 
0x00000000000000000000000000000040
(intptr_t)1 << 71 = 0x00000000000000800000000000000080 = 
0x00000000000000000000000000000080
(intptr_t)1 << 72 = 0x00000000000001000000000000000100 = 
0x00000000000000000000000000000100
(intptr_t)1 << 73 = 0x00000000000002000000000000000200 = 
0x00000000000000000000000000000200
(intptr_t)1 << 74 = 0x00000000000004000000000000000400 = 
0x00000000000000000000000000000400
(intptr_t)1 << 75 = 0x00000000000008000000000000000800 = 
0x00000000000000000000000000000800
(intptr_t)1 << 76 = 0x00000000000010000000000000001000 = 
0x00000000000000000000000000001000
(intptr_t)1 << 77 = 0x00000000000020000000000000002000 = 
0x00000000000000000000000000002000
(intptr_t)1 << 78 = 0x00000000000040000000000000004000 = 
0x00000000000000000000000000004000
(intptr_t)1 << 79 = 0x00000000000080000000000000008000 = 
0x00000000000000000000000000008000
(intptr_t)1 << 80 = 0x00000000000100000000000000010000 = 
0x00000000000000000000000000010000
(intptr_t)1 << 81 = 0x00000000000200000000000000020000 = 
0x00000000000000000000000000020000
(intptr_t)1 << 82 = 0x00000000000400000000000000040000 = 
0x00000000000000000000000000040000
(intptr_t)1 << 83 = 0x00000000000800000000000000080000 = 
0x00000000000000000000000000080000
(intptr_t)1 << 84 = 0x00000000001000000000000000100000 = 
0x00000000000000000000000000100000
(intptr_t)1 << 85 = 0x00000000002000000000000000200000 = 
0x00000000000000000000000000200000
(intptr_t)1 << 86 = 0x00000000004000000000000000400000 = 
0x00000000000000000000000000400000
(intptr_t)1 << 87 = 0x00000000008000000000000000800000 = 
0x00000000000000000000000000800000
(intptr_t)1 << 88 = 0x00000000010000000000000001000000 = 
0x00000000000000000000000001000000
(intptr_t)1 << 89 = 0x00000000020000000000000002000000 = 
0x00000000000000000000000002000000
(intptr_t)1 << 90 = 0x00000000040000000000000004000000 = 
0x00000000000000000000000004000000
(intptr_t)1 << 91 = 0x00000000080000000000000008000000 = 
0x00000000000000000000000008000000
(intptr_t)1 << 92 = 0x00000000100000000000000010000000 = 
0x00000000000000000000000010000000
(intptr_t)1 << 93 = 0x00000000200000000000000020000000 = 
0x00000000000000000000000020000000
(intptr_t)1 << 94 = 0x00000000400000000000000040000000 = 
0x00000000000000000000000040000000
(intptr_t)1 << 95 = 0x00000000800000000000000080000000 = 
0x00000000000000000000000080000000
(intptr_t)1 << 96 = 0x00000001000000000000000100000000 = 
0x00000000000000000000000100000000
(intptr_t)1 << 97 = 0x00000002000000000000000200000000 = 
0x00000000000000000000000200000000
(intptr_t)1 << 98 = 0x00000004000000000000000400000000 = 
0x00000000000000000000000400000000
(intptr_t)1 << 99 = 0x00000008000000000000000800000000 = 
0x00000000000000000000000800000000
(intptr_t)1 << 100 = 0x00000010000000000000001000000000 = 
0x00000000000000000000001000000000
(intptr_t)1 << 101 = 0x00000020000000000000002000000000 = 
0x00000000000000000000002000000000
(intptr_t)1 << 102 = 0x00000040000000000000004000000000 = 
0x00000000000000000000004000000000
(intptr_t)1 << 103 = 0x00000080000000000000008000000000 = 
0x00000000000000000000008000000000
(intptr_t)1 << 104 = 0x00000100000000000000010000000000 = 
0x00000000000000000000010000000000
(intptr_t)1 << 105 = 0x00000200000000000000020000000000 = 
0x00000000000000000000020000000000
(intptr_t)1 << 106 = 0x00000400000000000000040000000000 = 
0x00000000000000000000040000000000
(intptr_t)1 << 107 = 0x00000800000000000000080000000000 = 
0x00000000000000000000080000000000
(intptr_t)1 << 108 = 0x00001000000000000000100000000000 = 
0x00000000000000000000100000000000
(intptr_t)1 << 109 = 0x00002000000000000000200000000000 = 
0x00000000000000000000200000000000
(intptr_t)1 << 110 = 0x00004000000000000000400000000000 = 
0x00000000000000000000400000000000
(intptr_t)1 << 111 = 0x00008000000000000000800000000000 = 
0x00000000000000000000800000000000
(intptr_t)1 << 112 = 0x00010000000000000001000000000000 = 
0x00000000000000000001000000000000
(intptr_t)1 << 113 = 0x00020000000000000002000000000000 = 
0x00000000000000000002000000000000
(intptr_t)1 << 114 = 0x00040000000000000004000000000000 = 
0x00000000000000000004000000000000
(intptr_t)1 << 115 = 0x00080000000000000008000000000000 = 
0x00000000000000000008000000000000
(intptr_t)1 << 116 = 0x00100000000000000010000000000000 = 
0x00000000000000000010000000000000
(intptr_t)1 << 117 = 0x00200000000000000020000000000000 = 
0x00000000000000000020000000000000
(intptr_t)1 << 118 = 0x00400000000000000040000000000000 = 
0x00000000000000000040000000000000
(intptr_t)1 << 119 = 0x00800000000000000080000000000000 = 
0x00000000000000000080000000000000
(intptr_t)1 << 120 = 0x01000000000000000100000000000000 = 
0x00000000000000000100000000000000
(intptr_t)1 << 121 = 0x02000000000000000200000000000000 = 
0x00000000000000000200000000000000
(intptr_t)1 << 122 = 0x04000000000000000400000000000000 = 
0x00000000000000000400000000000000
(intptr_t)1 << 123 = 0x08000000000000000800000000000000 = 
0x00000000000000000800000000000000
(intptr_t)1 << 124 = 0x10000000000000001000000000000000 = 
0x00000000000000001000000000000000
(intptr_t)1 << 125 = 0x20000000000000002000000000000000 = 
0x00000000000000002000000000000000
(intptr_t)1 << 126 = 0x40000000000000004000000000000000 = 
0x00000000000000004000000000000000
================================================================================

Bruno






reply via email to

[Prev in Thread] Current Thread [Next in Thread]