diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-08-31 19:52:13 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-08-31 19:52:13 +0000 |
commit | 522fbc496995e3d756bd8f77d52c745c4023d733 (patch) | |
tree | 6725c35919a8b4d3bdd6cb89e976aebcdbb8f91c /clang/test/SemaCXX/member-operator-expr.cpp | |
parent | 879d7266086313b128238901246a3dbb0939b08a (diff) | |
download | bcm5719-llvm-522fbc496995e3d756bd8f77d52c745c4023d733.tar.gz bcm5719-llvm-522fbc496995e3d756bd8f77d52c745c4023d733.zip |
Support explicit C++ member operator syntax, from James Porter!
llvm-svn: 80608
Diffstat (limited to 'clang/test/SemaCXX/member-operator-expr.cpp')
-rw-r--r-- | clang/test/SemaCXX/member-operator-expr.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/member-operator-expr.cpp b/clang/test/SemaCXX/member-operator-expr.cpp new file mode 100644 index 00000000000..4d0e00fd601 --- /dev/null +++ b/clang/test/SemaCXX/member-operator-expr.cpp @@ -0,0 +1,29 @@ +// RUN: clang-cc -fsyntax-only -verify %s + +class X { +public: + int operator++(); + operator int(); +}; + +void test() { + X x; + int i; + + i = x.operator++(); + i = x.operator int(); + x.operator--(); // expected-error{{no member named 'operator--'}} + x.operator float(); // expected-error{{no member named 'operator float'}} + x.operator; // expected-error{{missing type specifier after 'operator'}} +} + +void test2() { + X *x; + int i; + + i = x->operator++(); + i = x->operator int(); + x->operator--(); // expected-error{{no member named 'operator--'}} + x->operator float(); // expected-error{{no member named 'operator float'}} + x->operator; // expected-error{{missing type specifier after 'operator'}} +} |