label3.c

来自「Mac OS X 10.4.9 for x86 Source Code gcc」· C语言 代码 · 共 40 行

C
40
字号
// Bug: we were removing the p = q assignment in dce, and then reinserting// it *after* the try/catch in out-of-ssa.  Oops.// testcase reduced from libjava/interpret.cc.// { dg-do run }// { dg-options "-O2" }extern "C" int printf (const char *, ...);bool b;int main(){  __label__ one, two, done;  void *labs[] = { &&one, &&two, &&done };  const void **q = (const void **)labs;  const void **p = q;  try    {    one:      printf ("one!\n");      if (b)	throw 42;      goto **p++;    two:      printf ("two!\n");      goto **p++;    done:      printf ("done!\n");    }  catch (int)    {      printf ("caught!\n");    }}

⌨️ 快捷键说明

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