// RUN: %clang_cc1 -fsyntax-only -verify -fexceptions %s
typedef __SIZE_TYPE__ size_t;// Operator delete template for placement new with global lookup
template<int I>structX0{X0();staticvoid* operator new(size_t){return I;// expected-error{{cannot initialize}}
}staticvoid operator delete(void*){int*ip = I;// expected-error{{cannot initialize}}
}};voidtest_X0(){// Using the global operator new suppresses the search for a
// operator delete in the class.
::new X0<2>;new X0<3>;// expected-note 2{{instantiation}}
}// Operator delete template for placement new[] with global lookup
template<int I>structX1{X1();staticvoid* operator new[](size_t){return I;// expected-error{{cannot initialize}}
}staticvoid operator delete[](void*){int*ip = I;// expected-error{{cannot initialize}}
}};voidtest_X1(){// Using the global operator new suppresses the search for a
// operator delete in the class.
::new X1<2>[17];new X1<3>[17];// expected-note 2{{instantiation}}
}