/* PR36999: Erroneous "does not declare anything" warnings. */ /* { dg-do compile } */ class C1 { public: class C2 { }; }; void cf1 (class C1::C2, void*); // { dg-bogus "does not declare anything" } void cf2 (void*, class C1::C2); void cf3 (C1::C2, void*); namespace N { enum E1 { foo }; enum E2 { bar }; template class TC1 { }; template class TC2 : public TC1 { }; } void tcf1 (N::TC2 *arg1, // { dg-bogus "does not declare anything" } N::TC2 *arg2, N::TC2 *arg3) { } void * tcf2 (void *x) { return (void *) (N::TC2 *) // { dg-bogus "does not declare anything" } (N::TC2 *) (N::TC2 *) x; }