diff options
Diffstat (limited to 'test/SemaCXX/call-with-static-chain.cpp')
-rw-r--r-- | test/SemaCXX/call-with-static-chain.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/test/SemaCXX/call-with-static-chain.cpp b/test/SemaCXX/call-with-static-chain.cpp new file mode 100644 index 0000000000000..45fe2ac294725 --- /dev/null +++ b/test/SemaCXX/call-with-static-chain.cpp @@ -0,0 +1,15 @@ +// RUN: %clang_cc1 -fsyntax-only -verify %s + +int &f(); + +struct A { + void f(); +}; + +typedef int I; + +void g() { + __builtin_call_with_static_chain(f(), f) = 42; + __builtin_call_with_static_chain(A().f(), f); // expected-error {{first argument to __builtin_call_with_static_chain must be a non-member call expression}} + __builtin_call_with_static_chain((42).~I(), f); // expected-error {{first argument to __builtin_call_with_static_chain must not be a pseudo-destructor call}} +} |