| // { dg-do assemble } | |
| struct S1 { | |
| ~S1(); // { dg-error "" } candidate | |
| }; | |
| S1::~S1() const | |
| { // { dg-error "" } prototype does not match | |
| } | |
| struct S2 { | |
| ~S2() volatile; // { dg-error "" } destructors may not be volatile | |
| }; | |
| template <class T> | |
| struct S3 { | |
| ~S3(); // { dg-error "" } candidate | |
| }; | |
| template <class T> | |
| S3<T>::~S3() volatile | |
| { // { dg-error "" } prototype does not match | |
| } | |
| template <class T> | |
| struct S4 { | |
| ~S4() const; // { dg-error "" } destructors may not be const | |
| }; |