1 // { dg-do run  }
2 extern "C" void abort ();
3 
4 struct A {
5   unsigned long long u;
6 } *a;
7 
8 struct B {
9   unsigned long long v;
wB10   unsigned long long w ()
11   {
12     return a->u - v;
13   }
14 } b;
15 
16 struct C {
17   static unsigned long long x;
18   static void y (unsigned long long z);
19 };
20 
21 unsigned long long C::x = 0;
22 
main()23 int main ()
24 {
25   a = new A;
26   b.v = 333418;
27   a->u = 1132270;
28   C::x = 0;
29   C::y (799016);
30 }
31 
foo(unsigned long long a,unsigned long long b,unsigned long long c)32 void foo (unsigned long long a, unsigned long long b, unsigned long long c)
33 {
34 }
35 
y(unsigned long long z)36 void C::y (unsigned long long z)
37 {
38   unsigned long long c = b.w () - x;
39   if (z < b.w ())
40     {
41       if ((long long) c < 0)
42 	{
43 	  foo (b.w (), a->u, b.v);
44 	  abort ();
45 	}
46     }
47 }
48