URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Go to most recent revision |
Only display areas with differences |
Details |
Blame |
View Log
Rev 154 |
Rev 816 |
/* Test Gcov with computed gotos.
|
/* Test Gcov with computed gotos.
|
This is the same as test gcc.c-torture/execute/980526-1.c */
|
This is the same as test gcc.c-torture/execute/980526-1.c */
|
|
|
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
|
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
|
/* { dg-do run { target native } } */
|
/* { dg-do run { target native } } */
|
|
|
extern void abort (void);
|
extern void abort (void);
|
extern void exit (int);
|
extern void exit (int);
|
|
|
int expect_do1 = 1, expect_do2 = 2;
|
int expect_do1 = 1, expect_do2 = 2;
|
|
|
static int doit(int x){
|
static int doit(int x){
|
__label__ lbl1;
|
__label__ lbl1;
|
__label__ lbl2;
|
__label__ lbl2;
|
static int jtab_init = 0;
|
static int jtab_init = 0;
|
static void *jtab[2];
|
static void *jtab[2];
|
|
|
if(!jtab_init) {
|
if(!jtab_init) {
|
jtab[0] = &&lbl1;
|
jtab[0] = &&lbl1;
|
jtab[1] = &&lbl2;
|
jtab[1] = &&lbl2;
|
jtab_init = 1;
|
jtab_init = 1;
|
}
|
}
|
goto *jtab[x];
|
goto *jtab[x];
|
lbl1:
|
lbl1:
|
return 1;
|
return 1;
|
lbl2:
|
lbl2:
|
return 2;
|
return 2;
|
}
|
}
|
|
|
static void do1(void) {
|
static void do1(void) {
|
if (doit(0) != expect_do1)
|
if (doit(0) != expect_do1)
|
abort ();
|
abort ();
|
}
|
}
|
|
|
static void do2(void){
|
static void do2(void){
|
if (doit(1) != expect_do2)
|
if (doit(1) != expect_do2)
|
abort ();
|
abort ();
|
}
|
}
|
|
|
int main(void){ /* count(1) */
|
int main(void){ /* count(1) */
|
#ifndef NO_LABEL_VALUES
|
#ifndef NO_LABEL_VALUES
|
do1();
|
do1();
|
do2();
|
do2();
|
#endif
|
#endif
|
exit(0); /* count(1) */
|
exit(0); /* count(1) */
|
}
|
}
|
|
|
/* { dg-final { run-gcov gcov-3.c } } */
|
/* { dg-final { run-gcov gcov-3.c } } */
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.