// { dg-do assemble } // Copyright (C) 2000, 2002 Free Software Foundation, Inc. // Contributed by Nathan Sidwell 7 Jan 2001 // As of G++ 3.4, we no longer attempt to detect dependencies; the // standard does not require that we do. // Bug 1038. Default args on class members can produce circular dependencies. // Make sure we spot them, and don't depend on a particular ordering. struct A { static int Foo (int = Baz ()); // { dg-error "" } static int Baz (int = Foo ()); }; struct Test { Test (void * = 0); void set (const Test &arg = Test ()); }; struct B { static int Bar (int = Foo (1)); static int Foo (int = Baz ()); // { dg-error "" } static int Baz (int = Foo (1)); }; int main () { Test t; t.set (); t.set (t); B::Bar (); B::Bar (1); B::Baz (); B::Baz (1); B::Foo (); B::Foo (1); return 0; }