1 // { dg-do assemble } 2 3 struct S1 { 4 ~S1(); // { dg-error "" } candidate 5 }; 6 ~S1()7S1::~S1() const // { dg-error "" } prototype does not match 8 { 9 } 10 11 12 struct S2 { 13 ~S2() volatile; // { dg-error "" } destructors may not be volatile 14 }; 15 16 17 template <class T> 18 struct S3 { 19 ~S3(); // { dg-error "" } candidate 20 }; 21 22 template <class T> ~S3()23S3<T>::~S3() volatile // { dg-error "" } prototype does not match 24 { 25 } 26 27 28 template <class T> 29 struct S4 { 30 ~S4() const; // { dg-error "" } destructors may not be const 31 }; 32