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

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [testsuite/] [g++.dg/] [opt/] [pr36449.C] - Blame information for rev 313

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

Line No. Rev Author Line
1 301 jeremybenn
// PR middle-end/36449
2
// { dg-do run }
3
// { dg-options "-O3" }
4
 
5
extern "C" void exit (int);
6
extern "C" void abort ();
7
 
8
struct R
9
{
10
  short a;
11
  short b;
12
};
13
 
14
struct S
15
{
16
  R e;
17
  long f;
18
  long g;
19
};
20
 
21
struct T
22
{
23
  short c;
24
  short d;
25
};
26
 
27
struct U
28
{
29
  long h[0x1ffffff + 1];
30
  T i;
31
};
32
 
33
U *j;
34
 
35
void __attribute__((noinline))
36
bar ()
37
{
38
  exit (0);
39
}
40
 
41
void __attribute__((noinline))
42
foo ()
43
{
44
  S s;
45
 
46
  s.e.a = 36;
47
  s.e.b = 38;
48
  if (s.e.a == j->i.c && s.e.b == j->i.d)
49
    bar ();
50
}
51
 
52
int
53
main ()
54
{
55
  try
56
    {
57
      j = new U;
58
    }
59
  catch (...)
60
    {
61
      return 0;
62
    }
63
  j->i.c = 36;
64
  j->i.d = 38;
65
  j->h[0] = 1;
66
  j->h[1] = 2;
67
  j->h[2] = 3;
68
  foo ();
69
  abort ();
70
}

powered by: WebSVN 2.1.0

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