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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.dg/] [20050121-2.c] - Blame information for rev 689

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 689 jeremybenn
/* PR middle-end/19551 */
2
/* { dg-options "-O2" } */
3
/* { dg-do link } */
4
 
5
extern void abort ();
6
 
7
#define T(type, name) \
8
extern __attribute__((pure)) _Complex type      \
9
foo_c##name (int x);                            \
10
                                                \
11
void                                            \
12
bar_c##name (type *x)                           \
13
{                                               \
14
  type f = __real foo_c##name (5);              \
15
  if (0) *x = f;                         \
16
}                                               \
17
                                                \
18
void                                            \
19
baz_c##name (type *x)                           \
20
{                                               \
21
  type f = __imag foo_c##name (5);              \
22
  if (0) *x = f;                         \
23
}                                               \
24
                                                \
25
extern __attribute__((pure)) type               \
26
foo_##name (int x);                             \
27
                                                \
28
void                                            \
29
bar_##name (type *x)                            \
30
{                                               \
31
  type f = foo_##name (5);                      \
32
  if (0) *x = f;                         \
33
}
34
 
35
typedef long double ldouble_t;
36
typedef long long llong;
37
 
38
T (float, float)
39
T (double, double)
40
T (long double, ldouble_t)
41
T (char, char)
42
T (short, short)
43
T (int, int)
44
T (long, long)
45
T (long long, llong)
46
#undef T
47
 
48
int
49
main (void)
50
{
51
#define T(type, name) \
52
  {                                             \
53
    type var = 0;                                \
54
    bar_c##name (&var);                         \
55
    baz_c##name (&var);                         \
56
    bar_##name (&var);                          \
57
  }
58
  T (float, float)
59
  T (double, double)
60
  T (long double, ldouble_t)
61
  T (char, char)
62
  T (short, short)
63
  T (int, int)
64
  T (long, long)
65
  T (long long, llong)
66
  return 0;
67
}

powered by: WebSVN 2.1.0

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