1/* Check that gcov correctly rounds nearly zero to nonzero and nearly 2 100 to not-100. 3 4 Copyright (C) 2002 Free Software Foundation, Inc. 5 Contributed by Nathan Sidwell <nathan@codesourcery.com> 6*/ 7 8/* { dg-options "-fprofile-arcs -ftest-coverage" } */ 9/* { dg-do run { target native } } */ 10 11int proxy (int i) 12{ 13 return i; 14} 15 16int foo (int i) 17{ 18 if (i > 0) /* branch(1) */ 19 return proxy (1); 20 else if (i < 0) /* branch(100) */ 21 return proxy (-1); 22 else 23 return proxy (0); 24} 25 26int baz (int i) 27{ 28 if (i == 0) /* branch(99) */ 29 return proxy (0); 30 else if (i > 0) /* branch(0)*/ 31 return proxy (1); 32 else 33 return proxy (-1); 34} 35 36int main () 37{ 38 int t = 0; 39 int ix; 40 41 for (ix = 0; ix != 1000; ix++) 42 t += foo (ix) + baz (ix); 43 44 return t == 0; 45} 46 47/* { dg-final { run-gcov branches {-b gcov-8.c } } } */ 48