From: Janis Johnson Date: Wed, 11 Jul 2001 17:38:53 +0000 (+0000) Subject: * gcc.misc-tests/gcov-3.c: New test. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1ca469746c7af2919d62b8513878ac2e5b30b6f7;p=gcc.git * gcc.misc-tests/gcov-3.c: New test. From-SVN: r43943 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 4a854af53a7..40368f90bff 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2001-07-11 Janis Johnson + + * gcc.misc-tests/gcov-3.c: New test. + 2001-07-11 Richard Sandiford * gcc.c-torture/compile/20010711-1.c, diff --git a/gcc/testsuite/gcc.misc-tests/gcov-3.c b/gcc/testsuite/gcc.misc-tests/gcov-3.c new file mode 100644 index 00000000000..36fe64f802b --- /dev/null +++ b/gcc/testsuite/gcc.misc-tests/gcov-3.c @@ -0,0 +1,45 @@ +/* Test Gcov with computed gotos. + This is the same as test gcc.c-torture/execute/980526-1.c */ + +/* { dg-options "-fprofile-arcs -ftest-coverage" } */ +/* { dg-do run { target native } } */ + +int expect_do1 = 1, expect_do2 = 2; + +static int doit(int x){ + __label__ lbl1; + __label__ lbl2; + static int jtab_init = 0; + static void *jtab[2]; + + if(!jtab_init) { + jtab[0] = &&lbl1; + jtab[1] = &&lbl2; + jtab_init = 1; + } + goto *jtab[x]; +lbl1: + return 1; +lbl2: + return 2; +} + +static void do1(void) { + if (doit(0) != expect_do1) + abort (); +} + +static void do2(void){ + if (doit(1) != expect_do2) + abort (); +} + +int main(void){ /* count(1) */ +#ifndef NO_LABEL_VALUES + do1(); + do2(); +#endif + exit(0); /* count(1) */ +} + +/* { dg-final { run-gcov gcov-3.c } } */