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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.dg/] [torture/] [20080716-1.c] - Blame information for rev 801

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

Line No. Rev Author Line
1 689 jeremybenn
/* { dg-do run } */
2
/* { dg-require-effective-target lp64 } */
3
 
4
typedef unsigned long size_t;
5
struct tree_base
6
{
7
  int code;
8
};
9
struct tree_decl_minimal
10
{
11
  struct tree_base base;
12
  const char *name;
13
};
14
typedef union tree_node {
15
  struct tree_base base;
16
  struct tree_decl_minimal decl_minimal;
17
} *tree;
18
struct tree_overload
19
{
20
  struct tree_base common;
21
  tree function;
22
};
23
typedef struct VEC_tree_base { unsigned num; unsigned alloc; tree vec[1]; } VEC_tree_base;
24
typedef struct VEC_tree_gc { VEC_tree_base base; } VEC_tree_gc;
25
static __inline__ unsigned VEC_tree_base_length (const VEC_tree_base *vec_)
26
{ return vec_ ? vec_->num : 0; }
27
static __inline__ int VEC_tree_base_iterate (const VEC_tree_base *vec_, unsigned ix_, tree *ptr)
28
{
29
  if (vec_ && ix_ < vec_->num) { *ptr = vec_->vec[ix_]; return 1; } else { *ptr = 0; return 0; }
30
}
31
extern void abort (void);
32
void __attribute__((noinline)) foo (size_t x)
33
{
34
  if (x != 18446744073709551614UL)
35
    abort ();
36
}
37
void
38
resort_type_method_vec (VEC_tree_gc *method_vec)
39
{
40
  int len = (VEC_tree_base_length(((method_vec) ? &(method_vec)->base : 0)));
41
  size_t slot;
42
  tree fn;
43
 
44
  for (slot = 2;
45
       (VEC_tree_base_iterate(((method_vec) ? &(method_vec)->base : 0),slot,&(fn)));
46
       ++slot)
47
    if (!(((((((fn)->base.code) == 225) ? (((struct tree_overload*)(fn))->function) : (fn)))->decl_minimal.name)))
48
      break;
49
 
50
  if (len - slot > 1)
51
    foo (len - slot);
52
}
53
 
54
int main ()
55
{
56
  resort_type_method_vec ((void *)0);
57
  return 0;
58
}

powered by: WebSVN 2.1.0

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