diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2011-07-13 22:53:21 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2011-07-13 22:53:21 +0000 |
commit | 87c1f1f7c400deb2eb40d4599a40006072fb948c (patch) | |
tree | 32b90473a01a202e41f4be5d31304cbe020c8f9c /test/SemaCXX/conversion-function.cpp | |
parent | b8981df0ed2886dfa221f2fad6d86872c39d3549 (diff) |
PR8800: When building a conversion to A& using a member operatorA&(), do not require A to be a complete type.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135101 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/SemaCXX/conversion-function.cpp')
-rw-r--r-- | test/SemaCXX/conversion-function.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/test/SemaCXX/conversion-function.cpp b/test/SemaCXX/conversion-function.cpp index aa47ae0f48..a7a178244c 100644 --- a/test/SemaCXX/conversion-function.cpp +++ b/test/SemaCXX/conversion-function.cpp @@ -378,3 +378,17 @@ namespace PR9336 { generic_list<generic_list<int> > l; array<array<int> > a = l; } + +namespace PR8800 { + struct A; + struct C { + operator A&(); + }; + void f() { + C c; + A& a1(c); + A& a2 = c; + A& a3 = static_cast<A&>(c); + A& a4 = (A&)c; + } +} |