1// { dg-do assemble  }
2
3// Copyright (C) 2000 Free Software Foundation, Inc.
4// Contributed by Nathan Sidwell 22 June 2000 <nathan@codesourcery.com>
5
6// Origin GNATS bug report 262 from Jeremy Sanders <jss@ast.cam.ac.uk>
7// and several others. With templates, it's very easy to say something
8// erroneous like
9//    template class X::X<whatever>
10// The culprit
11//    ... class X::X ...
12// caused us to ICE as we got confused about pushing and popping scopes.
13
14template <class T> class image
15{
16public:
17  template <class U> image(const image<U> &copy);
18};
19
20template <class T> template <class U> image<T>::image(const image<U> &copy)
21{
22}
23
24template class image<double>;
25template class image<double>::image (const image<int> &); // { dg-error "" } parse error
26template class image<double>::image (image<int>); // { dg-error "" } specified as declarator-id
27template image<double>::image (const image<int> &);
28