Home | History | Annotate | Download | only in basic.stc.dynamic
      1 // RUN: %clang_cc1 -fsyntax-only -fexceptions -fcxx-exceptions -verify %s
      2 int *use_new(int N) {
      3   if (N == 1)
      4     return new int;
      5 
      6   return new int [N];
      7 }
      8 
      9 void use_delete(int* ip, int N) {
     10   if (N == 1)
     11     delete ip;
     12   else
     13     delete [] ip;
     14 }
     15 
     16 namespace std {
     17   class bad_alloc { };
     18 
     19   typedef __SIZE_TYPE__ size_t;
     20 }
     21 
     22 void* operator new(std::size_t) throw(std::bad_alloc); // expected-note{{previous declaration}}
     23 void* operator new[](std::size_t) throw(std::bad_alloc);
     24 void operator delete(void*) throw(); // expected-note{{previous declaration}}
     25 void operator delete[](void*) throw();
     26 
     27 void* operator new(std::size_t); // expected-warning{{'operator new' is missing exception specification 'throw(std::bad_alloc)'}}
     28 void operator delete(void*); // expected-warning{{'operator delete' is missing exception specification 'throw()'}}
     29