From 0feaf0c7e3e1349907f38edf9e7635500bf85cc3 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Sat, 20 Apr 2013 12:41:22 +0000 Subject: Implement core issue 1608: class members can be found via operator lookup in a trailing return type in that class's body. llvm-svn: 179941 --- clang/test/SemaCXX/trailing-return-0x.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'clang/test/SemaCXX/trailing-return-0x.cpp') diff --git a/clang/test/SemaCXX/trailing-return-0x.cpp b/clang/test/SemaCXX/trailing-return-0x.cpp index 462b4fa3da0..bd601db2ac1 100644 --- a/clang/test/SemaCXX/trailing-return-0x.cpp +++ b/clang/test/SemaCXX/trailing-return-0x.cpp @@ -85,3 +85,12 @@ namespace PR12053 { f2(0); // expected-error{{no matching function for call to 'f2'}} } } + +namespace DR1608 { + struct S { + void operator+(); + int operator[](int); + auto f() -> decltype(+*this); // expected-note {{here}} + auto f() -> decltype((*this)[0]); // expected-error {{cannot be overloaded}} + }; +} -- cgit v1.2.3