/* { dg-do run } */ /* { dg-options "-O2 -finstrument-functions" } */ extern void abort (void); extern void exit (int); double foo (double a, double b) { double c; if (0.0 < a) c = a; else if (b > 0.0) c = 0.0; else return 0; return 2.0 * (b - c); } int main () { if (foo (1.0, 4.0) != 6.0) abort (); exit (0); } /* Abort on non-NULL CALL_SITE to ensure that __builtin_return_address was expanded properly. */ void __attribute__((no_instrument_function)) __cyg_profile_func_enter(void *this_fn, void *call_site) { if (call_site == (void *)0) abort (); } void __attribute__((no_instrument_function)) __cyg_profile_func_exit(void *this_fn, void *call_site) { if (call_site == (void *)0) abort (); }