delayslot1.c

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

C
48
字号
// PR target/12301// Origin: Colin Hirsch <gcc@cohi.at>// Testcase by Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>// This used to fail on SPARC because the reorg pass moved an insn// across a function call that can throw internally, in order to put// it in a delay slot.// { dg-do run }// { dg-options "-O" }struct S{  char *c;  char data[100];  S () : c (data) {};  S (const S& s) {    c = data;    data[0] = s.c[0];  }};S real_cast (){  throw 3;  }S cast_helper(S& debug){  try {    return real_cast();  }  catch (int e) {    throw debug;  }}int main(){  S tmp;  try {    cast_helper (tmp);  }                                          catch (S& e) {}  return 0;}

⌨️ 快捷键说明

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