[PR c++/84702] ICE with default tmpl arg of overload set
[official-gcc.git] / gcc / testsuite / g++.dg / eh / init-temp2.C
blob8db0ace13a3eff9643fd70cc5e5bff38484691c8
1 // PR c++/34196
2 // { dg-options "-O -Wuninitialized" }
4 template <class _Tp> class AutoPtr
6   _Tp* _M_ptr;
8 public:
9   explicit AutoPtr(_Tp* __p = 0)  : _M_ptr(__p) {}
11   ~AutoPtr()
12 #if __cplusplus <= 201402L
13   throw(int)                    // { dg-warning "deprecated" "" { target { c++11 && { ! c++17 } } } }
14 #else
15   noexcept(false)
16 #endif
17   { delete _M_ptr; }
20 struct A
22   A() { }
23   ~A()
24 #if __cplusplus <= 201402L
25   throw(int)                    // { dg-warning "deprecated" "" { target { c++11 && { ! c++17 } } } }
26 #else
27   noexcept(false)
28 #endif
29   { throw 1; }
32 struct B
34   virtual ~B()
35 #if __cplusplus <= 201402L
36   throw(int)                    // { dg-warning "deprecated" "" { target { c++11 && { ! c++17 } } } }
37 #else
38   noexcept(false)
39 #endif
40   ;
43 B* f (const A &s) { throw 1; }
45 int
46 main()
48   AutoPtr<B> wt(f(A()));