diff options
author | pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-07-05 19:37:48 +0000 |
---|---|---|
committer | pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-07-05 19:37:48 +0000 |
commit | 0bafabac24ea54968b3c6d670f51391232d1d1d3 (patch) | |
tree | d2ce9d323f7a8369837c81bd35b927468c1790a0 /gcc/testsuite/g++.dg/tree-ssa | |
parent | ec2e6a4ef271c923a7f6550ab1bbfa40181352c2 (diff) | |
download | gcc-0bafabac24ea54968b3c6d670f51391232d1d1d3.tar.gz |
2008-07-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
* g++.dg/tree-ssa/ptrmemfield.C: New testcase.
2008-07-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
* fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
integral and pointer types.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@137510 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/g++.dg/tree-ssa')
-rw-r--r-- | gcc/testsuite/g++.dg/tree-ssa/ptrmemfield.C | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/tree-ssa/ptrmemfield.C b/gcc/testsuite/g++.dg/tree-ssa/ptrmemfield.C new file mode 100644 index 00000000000..38189eb43af --- /dev/null +++ b/gcc/testsuite/g++.dg/tree-ssa/ptrmemfield.C @@ -0,0 +1,27 @@ +/* { dg-do compile } */ +// { dg-options "-O2 -fdump-tree-final_cleanup" } + + +struct f +{ + char m; + char m1; +}; + +static inline char f:: *g(int a) +{ + return a?0:&f::m; +} + +int h(void) +{ + char f:: *a = g(0); + return a == 0; +} + +/* We should have no cast to offset_type. */ +/* { dg-final { scan-tree-dump-times "offset_type" 0 "final_cleanup"} } */ +// And we should optimized this code to just return 0 +/* { dg-final { scan-tree-dump-times "return 0" 1 "final_cleanup"} } */ +/* { dg-final { cleanup-tree-dump "final_cleanup" } } */ + |