summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorSebastian Redl <sebastian.redl@getdesigned.at>2009-02-03 20:19:35 +0000
committerSebastian Redl <sebastian.redl@getdesigned.at>2009-02-03 20:19:35 +0000
commit3d3f75a995cee883428f3e5c331433c9c1d76725 (patch)
treec025daba400ead4ffbb37cc81f9ac5158a791e21 /clang/test
parentfc7c76159cf5027dc28e95e3d2471d4becbc53aa (diff)
downloadbcm5719-llvm-3d3f75a995cee883428f3e5c331433c9c1d76725.tar.gz
bcm5719-llvm-3d3f75a995cee883428f3e5c331433c9c1d76725.zip
Allow taking the address of data members, resulting in a member pointer.
Pointers to functions don't work yet, and pointers to overloaded functions even less. Also, far too much illegal code is accepted. llvm-svn: 63655
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/SemaCXX/member-pointer.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/member-pointer.cpp b/clang/test/SemaCXX/member-pointer.cpp
index 31973c12570..450fdba367f 100644
--- a/clang/test/SemaCXX/member-pointer.cpp
+++ b/clang/test/SemaCXX/member-pointer.cpp
@@ -40,3 +40,23 @@ void f() {
// Conversion to member of base.
pdi1 = pdid; // expected-error {{incompatible type assigning 'int struct D::*', expected 'int struct A::*'}}
}
+
+struct HasMembers
+{
+ int i;
+ void f();
+};
+
+namespace Fake
+{
+ int i;
+ void f();
+}
+
+void g() {
+ int HasMembers::*pmi = &HasMembers::i;
+ int *pni = &Fake::i;
+
+ // FIXME: Test the member function, too.
+ void (*pnf)() = &Fake::f;
+}
OpenPOWER on IntegriCloud