From c7a3107bafeff517d301df8e6cd4bee36afbe5cd Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Mon, 10 Oct 2011 22:41:00 +0000 Subject: When performing a user-defined conversion via a constructor, be sure to check whether the constructor is accessible. Fixes . llvm-svn: 141588 --- clang/test/SemaCXX/user-defined-conversions.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'clang/test/SemaCXX/user-defined-conversions.cpp') diff --git a/clang/test/SemaCXX/user-defined-conversions.cpp b/clang/test/SemaCXX/user-defined-conversions.cpp index 5de7f44be92..43ec5a3d4ab 100644 --- a/clang/test/SemaCXX/user-defined-conversions.cpp +++ b/clang/test/SemaCXX/user-defined-conversions.cpp @@ -82,3 +82,18 @@ float &f(...); void g(X2 b) { int &ir = f(b); // expected-error{{no viable constructor copying parameter of type 'X1'}} } + +namespace rdar10202900 { + class A { + public: + A(); + + private: + A(int i); // expected-note{{declared private here}} + }; + + void testA(A a) { + int b = 10; + a = b; // expected-error{{calling a private constructor of class 'rdar10202900::A'}} + } +} -- cgit v1.2.3