summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/user-defined-conversions.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-10-10 22:41:00 +0000
committerDouglas Gregor <dgregor@apple.com>2011-10-10 22:41:00 +0000
commitc7a3107bafeff517d301df8e6cd4bee36afbe5cd (patch)
tree99ffd509363d00904ba3b41363db0e8d48ab6f5f /clang/test/SemaCXX/user-defined-conversions.cpp
parent8f34b6999cd678d4c0a2b120f470daf33660969f (diff)
downloadbcm5719-llvm-c7a3107bafeff517d301df8e6cd4bee36afbe5cd.tar.gz
bcm5719-llvm-c7a3107bafeff517d301df8e6cd4bee36afbe5cd.zip
When performing a user-defined conversion via a constructor, be sure
to check whether the constructor is accessible. Fixes <rdar://problem/10202900>. llvm-svn: 141588
Diffstat (limited to 'clang/test/SemaCXX/user-defined-conversions.cpp')
-rw-r--r--clang/test/SemaCXX/user-defined-conversions.cpp15
1 files changed, 15 insertions, 0 deletions
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'}}
+ }
+}
OpenPOWER on IntegriCloud