diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/opt/ptrmem5.C')
-rw-r--r-- | gcc/testsuite/g++.dg/opt/ptrmem5.C | 19 |
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; +} + |