// { dg-do assemble }
struct test_box
    {
     void print(void);
    };
void test<class BOX> (test_box *);   // { dg-error "" } illegal code
class test_square
    {
      friend void test<class BOX> (test_box *); // { dg-error "" } does not match
    }						// { dg-error "after class definition" }
template <class BOX> void test(BOX *the_box)
    {x				// { dg-error "not declared in this scope" }
    the_box->print();
    }
template void test<> (test_box *);