summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/opt/ptrmem5.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.dg/opt/ptrmem5.C')
-rw-r--r--gcc/testsuite/g++.dg/opt/ptrmem5.C19
1 files changed, 19 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/opt/ptrmem5.C b/gcc/testsuite/g++.dg/opt/ptrmem5.C
new file mode 100644
index 000000000..639ad2831
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/ptrmem5.C
@@ -0,0 +1,19 @@
+// PR tree-opt/18904
+// { dg-do compile }
+// { dg-options "-O3" }
+
+struct Data;
+struct Wrapper {
+ Data* D;
+};
+struct Data {
+ int X;
+ void init(Wrapper&);
+};
+void Data::init( Wrapper &w ) {
+ int Data::* res = &Data::X;
+ w.D = this;
+ for( int i = 0; i < 4; i++ )
+ (w.D->*res) = 0;
+}
+