| // RUN: %clang_cc1 -triple x86_64-unknown-windows-msvc -std=c++23 -fsyntax-only %s -verify |
| // RUN: %clang_cc1 -triple x86_64-unknown-windows-itanium -std=c++23 -fsyntax-only %s -verify |
| virtual void operator()(); |
| static void operator()(); |
| auto pmf = &S::operator(); |
| __asm__ __volatile__ ("" : : "r"(&decltype(L)::operator())); |
| // expected-error@-1{{cannot pass a pointer-to-member through register-constrained inline assembly parameter}} |
| __asm__ __volatile__ ("" : : "r"(&S::operator())); |
| // expected-error@-1{{cannot pass a pointer-to-member through register-constrained inline assembly parameter}} |
| __asm__ __volatile__ ("" : : "r"(&T::operator())); |
| // expected-error@-1{{cannot pass a pointer-to-member through register-constrained inline assembly parameter}} |
| __asm__ __volatile__ ("" : : "r"(pmf)); |
| // expected-error@-1{{cannot pass a pointer-to-member through register-constrained inline assembly parameter}} |
| __asm__ __volatile__ ("" : : "r"(&W::f)); |
| // expected-error@-1{{cannot pass a pointer-to-member through register-constrained inline assembly parameter}} |
| __asm__ __volatile__ ("" : : "r"(&W::i)); |
| // expected-error@-1{{cannot pass a pointer-to-member through register-constrained inline assembly parameter}} |
| __asm__ __volatile__ ("" : : "r"(X{0,0})); |
| __asm__ __volatile__ ("" : : "r"(&U::operator())); |