sibcall-6.c
来自「用于进行gcc测试」· C语言 代码 · 共 47 行
C
47 行
/* A simple check to see whether indirect calls are being sibcall optimized on targets that do support this notion, i.e. have the according call patterns in place. Copyright (C) 2002 Free Software Foundation Inc. Contributed by Andreas Bauer <baueran@in.tum.de> *//* { dg-do run { target i?86-*-* x86_64-*-* s390*-*-* } } *//* { dg-skip-if "" { { i?86-*-* x86_64-*-* } && { ilp32 && { ! nonpic } } } { "*" } { "" } } *//* { dg-options "-O2 -foptimize-sibling-calls" } */extern void abort (void);extern void exit (int);int foo (int);int bar (int);int (*ptr) (int);int *f_addr;intmain (){ ptr = bar; foo (7); exit (0);}intbar (b) int b;{ if (f_addr == (int*) __builtin_return_address (0)) return b; else abort ();}intfoo (f) int f;{ f_addr = (int*) __builtin_return_address (0); return (*ptr)(f);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?