| #include <cstdlib> |
| |
| struct s {}; |
| |
| void test_1 () |
| { |
| s *p = new s; // { dg-message "allocated here \\(expects deallocation with 'delete'\\)" |
| free (p); // { dg-warning "'p' should have been deallocated with 'delete' but was deallocated with 'free'" } |
| } |
| |
| void test_2 () |
| { |
| char *p = new char[16]; // { dg-message "allocated here \\(expects deallocation with 'delete\\\[\\\]'\\)" |
| free (p); // { dg-warning "'p' should have been deallocated with 'delete\\\[\\\]' but was deallocated with 'free'" } |
| } |
| |
| void test_3 () |
| { |
| char *p = (char *)malloc (16); // { dg-message "allocated here \\(expects deallocation with 'free'\\)" |
| delete[] p; // { dg-warning "'p' should have been deallocated with 'free' but was deallocated with 'delete\\\[\\\]'" } |
| } |