diff gcc/testsuite/g++.dg/opt/ptrmem3.C @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gcc/testsuite/g++.dg/opt/ptrmem3.C	Fri Oct 27 22:46:09 2017 +0900
@@ -0,0 +1,23 @@
+// { dg-options "-O1" }
+
+#include <stdio.h>
+struct A {
+     A(int arg) : ia(arg) {}
+     int x,y,z,ia;
+     int mf(int arg) { return arg + ia; }
+};
+int func(int A::*pdm, int (A::*pmf)(int)) //      2.      regular function
+{ 
+     A oa(2);
+     return ((&oa)->*pdm) + (oa.*pmf)(2); 
+}       
+int main()
+{
+     int val;
+
+     int A::*pda = &A::ia;           
+     int (A::*pmfa)(int) = &A::mf;   
+     val = func( pda, pmfa );
+     if(val != 6)
+       printf("val=%d, expect 6 \n", val);
+}