20051215-1.c

来自「用于进行gcc测试」· C语言 代码 · 共 37 行

C
37
字号
/* ARM's load-and-call patterns used to allow automodified addresses.   This was wrong, because if the modified register were spilled,   the call would need an output reload.  *//* { dg-do run { target arm*-*-* } } *//* { dg-options "-O2 -fno-omit-frame-pointer" } */extern void abort (void);typedef void (*callback) (void);static voidfoo (callback *first, callback *p){  while (p > first)    {      (*--p) ();#ifndef __thumb__      asm ("" : "=r" (p) : "0" (p)	   : "r4", "r5", "r6", "r7", "r8", "r9", "r10");#endif    }   }static voiddummy (void){  static int count;  if (count++ == 1)    abort ();}intmain (void){  callback list[1] = { dummy };  foo (&list[0], &list[1]);  return 0;}

⌨️ 快捷键说明

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