aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGenCXX/ptr-to-datamember.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGenCXX/ptr-to-datamember.cpp')
-rw-r--r--test/CodeGenCXX/ptr-to-datamember.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/test/CodeGenCXX/ptr-to-datamember.cpp b/test/CodeGenCXX/ptr-to-datamember.cpp
index eee03c060f91..a7b4cc2f7afb 100644
--- a/test/CodeGenCXX/ptr-to-datamember.cpp
+++ b/test/CodeGenCXX/ptr-to-datamember.cpp
@@ -51,6 +51,21 @@ void test_aggr_pdata(A& a1) {
pr(a1.*af);
}
+void test_aggr_pdata_1(A* pa) {
+ F A::* af = &A::Af;
+ pr(pa->*af);
+
+ (pa->*af).iF = 100;
+ (pa->*af).fF = 200.00;
+ printf(" %d %f\n", (pa->*af).iF, (pa->*af).fF);
+ pr(pa->*af);
+
+ (pa->*af).iF++;
+ (pa->*af).fF--;
+ --(pa->*af).fF;
+ pr(pa->*af);
+}
+
int main()
{
A a1;
@@ -67,4 +82,5 @@ int main()
printf("%d\n", &A::B1::V::iV);
printf("%d, %f, %f \n", a1.*pa, a1.*pf, a1.*pd);
test_aggr_pdata(a1);
+ test_aggr_pdata_1(&a1);
}