summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/member-pointer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/SemaCXX/member-pointer.cpp')
-rw-r--r--clang/test/SemaCXX/member-pointer.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/member-pointer.cpp b/clang/test/SemaCXX/member-pointer.cpp
index 2568cb59d8b..4aa30984610 100644
--- a/clang/test/SemaCXX/member-pointer.cpp
+++ b/clang/test/SemaCXX/member-pointer.cpp
@@ -3,6 +3,7 @@
struct A {};
enum B { Dummy };
namespace C {}
+struct D : A {};
int A::*pdi1;
int (::A::*pdi2);
@@ -16,4 +17,16 @@ int& A::*pdr; // expected-error {{'pdr' declared as a pointer to a reference}}
void f() {
// This requires tentative parsing.
int (A::*pf)(int, int);
+
+ // Implicit conversion to bool.
+ bool b = pdi1;
+ b = pfi;
+
+ // Conversion from null pointer constant.
+ pf = 0;
+ pf = __null;
+
+ // Conversion to member of derived.
+ int D::*pdid = pdi1;
+ pdid = pdi2;
}
OpenPOWER on IntegriCloud