all-read-write-1.c

来自「linux下编程用 编译软件」· C语言 代码 · 共 35 行

C
35
字号
/* { dg-do run } */extern void abort (void);extern void exit (int);volatile unsigned long long x[2];int main (){  volatile char *addr = (volatile char *) &x[0];  x[0] = ~0ULL;  x[1] = ~0ULL;  __builtin_write64 (addr, 0x1122334455667788ULL);  __builtin_write32 (addr + 8, 0x12345678);  __builtin_write16 (addr + 12, 0xaabb);  __builtin_write8 (addr + 14, 0xcc);  if (x[0] != 0x1122334455667788ULL      || x[1] != 0x12345678aabbccffULL      || __builtin_read8 (addr) != 0x11      || __builtin_read16 (addr + 2) != 0x3344      || __builtin_read32 (addr + 4) != 0x55667788      || __builtin_read64 (addr + 8) != 0x12345678aabbccffULL)    abort ();  __builtin_write64 (addr, 0);  __builtin_write32 (addr + 8, 0);  __builtin_write16 (addr + 12, 0);  __builtin_write8 (addr + 14, 0);  if (x[0] != 0 || x[1] != 0xff)    abort ();  exit (0);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?