1// { dg-do assemble }
2// { dg-options "-O" }
3
4// Posted by H. J. Lu <hjl@lucon.org>
5
6template<class T>
7class FixSeq
8{
9public:
10    void append(const T&);
11};
12class foo
13{
14public:
15    void setupIR();
16};
17typedef FixSeq<foo *> bar;
18extern void dummy (foo *);
19void *
20foobar (bar &x, foo *p)
21{
22    try
23    {
24        p -> setupIR();
25    }
26    catch(...)
27    {
28        dummy (p);
29    }
30    x.append(p);
31    return p;
32}
33