// { dg-do run } extern "C" void abort (); struct A { unsigned long long u; } *a; struct B { unsigned long long v; unsigned long long w () { return a->u - v; } } b; struct C { static unsigned long long x; static void y (unsigned long long z); }; unsigned long long C::x = 0; int main () { a = new A; b.v = 333418; a->u = 1132270; C::x = 0; C::y (799016); } void foo (unsigned long long a, unsigned long long b, unsigned long long c) { } void C::y (unsigned long long z) { unsigned long long c = b.w () - x; if (z < b.w ()) { if ((long long) c < 0) { foo (b.w (), a->u, b.v); abort (); } } }