Fortran: Fix PR 47485.
[gcc.git] / gcc / testsuite / g++.dg / warn / Wmismatched-dealloc.C
blob3072e240e281279681b73e79ec0db6f02ba5c93e
1 /* PR middle-end/94527 - Add an attribute that marks a function as freeing
2    an object
3    { dg-do compile { target c++11 } }
4    { dg-options "-Wall" } */
6 #define A(...) __attribute__ ((malloc (__VA_ARGS__)))
8 typedef __SIZE_TYPE__ size_t;
10 void                   mydealloc (int, void*);
11 void* A (mydealloc, 2) myalloc (void*);
14 void* A (operator delete, 1)
15   bad_new (size_t);                     // { dg-error "attribute argument 1 is ambiguous" "" { target c++14 } }
16 void* A (operator delete[], 1)
17   bad_array_new (size_t);               // { dg-error "attribute argument 1 is ambiguous" "" { target c++14 } }
19 void my_delete (const char*, void*);
20 void my_array_delete (const char*, void*);
22 typedef void OpDelete (void*);
24 int* A ((OpDelete*)operator delete, 1) A (my_delete, 2)
25   my_new (size_t);
26 int* A ((OpDelete*)operator delete[], 1) A (my_array_delete, 2)
27   my_array_new (size_t);