1762bb9d0ad20320b9f97a841dce57ba5e8e48b07Richard Smith// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s 21795d371c3ef79c3a2316677ea2014b2952915acEli Friedman 31795d371c3ef79c3a2316677ea2014b2952915acEli Friedmanstruct PR10757 { 41795d371c3ef79c3a2316677ea2014b2952915acEli Friedman bool operator~() = delete; // expected-note {{explicitly deleted}} 51795d371c3ef79c3a2316677ea2014b2952915acEli Friedman bool operator==(const PR10757&) = delete; // expected-note {{explicitly deleted}} 61795d371c3ef79c3a2316677ea2014b2952915acEli Friedman operator float(); 71795d371c3ef79c3a2316677ea2014b2952915acEli Friedman}; 81795d371c3ef79c3a2316677ea2014b2952915acEli Friedmanint PR10757f() { 91795d371c3ef79c3a2316677ea2014b2952915acEli Friedman PR10757 a1; 101795d371c3ef79c3a2316677ea2014b2952915acEli Friedman // FIXME: We get a ridiculous number of "built-in candidate" notes here... 113c2fcf8705023e1d91d1c85dc7c8a4aa2248050bRichard Smith if(~a1) {} // expected-error {{overload resolution selected deleted operator}} expected-note 8 {{built-in candidate}} 123c2fcf8705023e1d91d1c85dc7c8a4aa2248050bRichard Smith if(a1==a1) {} // expected-error {{overload resolution selected deleted operator}} expected-note 121 {{built-in candidate}} 131795d371c3ef79c3a2316677ea2014b2952915acEli Friedman} 147a9f49296a6454b7a6f0edce89dc99d413a7e14eRichard Smith 157a9f49296a6454b7a6f0edce89dc99d413a7e14eRichard Smithstruct DelOpDel { 16651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines // FIXME: In MS ABI, we error twice below. 17651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines virtual ~DelOpDel() {} // expected-error 1-2 {{attempt to use a deleted function}} 18651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines void operator delete(void*) = delete; // expected-note 1-2 {{deleted here}} 197a9f49296a6454b7a6f0edce89dc99d413a7e14eRichard Smith}; 20