/* { dg-do compile } */ /* { dg-options "-O2 -fstrub=strict -fno-exceptions -fdump-ipa-strub" } */ /* { dg-require-effective-target strub } */ /* Check that the expected strub calls are issued. Tail calls are short-circuited at -O2+. */ int __attribute__ ((__strub__)) g (int i, int j) { return g (i, j); } /* { dg-final { scan-ipa-dump-times "strub_enter" 0 "strub" } } */ /* { dg-final { scan-ipa-dump-times "strub_update" 2 "strub" } } */ /* { dg-final { scan-ipa-dump-times "strub_leave" 0 "strub" } } */