1762bb9d0ad20320b9f97a841dce57ba5e8e48b07Richard Smith// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 -fexceptions %s 26d90870fe821a9b1a7822d3e28032042d03e5680Douglas Gregortypedef __SIZE_TYPE__ size_t; 36d90870fe821a9b1a7822d3e28032042d03e5680Douglas Gregor 46d90870fe821a9b1a7822d3e28032042d03e5680Douglas Gregorstruct S { 56d90870fe821a9b1a7822d3e28032042d03e5680Douglas Gregor // Placement allocation function: 66d90870fe821a9b1a7822d3e28032042d03e5680Douglas Gregor static void* operator new(size_t, size_t); 76d90870fe821a9b1a7822d3e28032042d03e5680Douglas Gregor // Usual (non-placement) deallocation function: 86d90870fe821a9b1a7822d3e28032042d03e5680Douglas Gregor static void operator delete(void*, size_t); // expected-note{{declared here}} 96d90870fe821a9b1a7822d3e28032042d03e5680Douglas Gregor}; 106d90870fe821a9b1a7822d3e28032042d03e5680Douglas Gregor 116d90870fe821a9b1a7822d3e28032042d03e5680Douglas Gregorvoid testS() { 126d90870fe821a9b1a7822d3e28032042d03e5680Douglas Gregor S* p = new (0) S; // expected-error{{'new' expression with placement arguments refers to non-placement 'operator delete'}} 136d90870fe821a9b1a7822d3e28032042d03e5680Douglas Gregor} 14