OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.c-torture/] [execute/] [pr43835.c] - Blame information for rev 801

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 688 jeremybenn
struct PMC {
2
    unsigned flags;
3
};
4
 
5
typedef struct Pcc_cell
6
{
7
    struct PMC *p;
8
    long bla;
9
    long type;
10
} Pcc_cell;
11
 
12
extern void abort ();
13
extern void Parrot_gc_mark_PMC_alive_fun(int * interp, struct PMC *pmc)
14
     __attribute__((noinline));
15
 
16
void Parrot_gc_mark_PMC_alive_fun (int * interp, struct PMC *pmc)
17
{
18
  abort ();
19
}
20
 
21
static void mark_cell(int * interp, Pcc_cell *c)
22
        __attribute__((__nonnull__(1)))
23
        __attribute__((__nonnull__(2)))
24
        __attribute__((noinline));
25
 
26
static void
27
mark_cell(int * interp, Pcc_cell *c)
28
{
29
            if (c->type == 4 && c->p
30
                && !(c->p->flags & (1<<18)))
31
              Parrot_gc_mark_PMC_alive_fun(interp, c->p);
32
}
33
 
34
void foo(int * interp, Pcc_cell *c);
35
 
36
void
37
foo(int * interp, Pcc_cell *c)
38
{
39
  mark_cell(interp, c);
40
}
41
 
42
int main()
43
{
44
  int i;
45
  Pcc_cell c;
46
  c.p = 0;
47
  c.bla = 42;
48
  c.type = 4;
49
  foo (&i, &c);
50
  return 0;
51
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.