diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2011-01-20 16:56:25 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2011-01-20 16:56:25 +0000 |
commit | 427f6cec9c82ea688d821fd2e8d05197d8a1792f (patch) | |
tree | 14a8302aec3d91db81012ed7e00e5de1ecf7e409 /gcc/testsuite | |
parent | 583ac69ceb5c573aa3fd016f209f222b8ad704cb (diff) | |
download | gcc-427f6cec9c82ea688d821fd2e8d05197d8a1792f.zip gcc-427f6cec9c82ea688d821fd2e8d05197d8a1792f.tar.gz gcc-427f6cec9c82ea688d821fd2e8d05197d8a1792f.tar.bz2 |
re PR tree-optimization/46583 (-fcompare-debug failure with -O -fno-inline -fipa-cp -fipa-cp-clone)
gcc/ChangeLog:
PR debug/46583
* tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
gcc/testsuite/ChangeLog:
PR debug/46583
* g++.dg/debug/pr46583.C: New.
From-SVN: r169058
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/debug/pr46583.C | 40 |
2 files changed, 45 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index cba5291..baf5732 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2011-01-20 Alexandre Oliva <aoliva@redhat.com> + + PR debug/46583 + * g++.dg/debug/pr46583.C: New. + 2011-01-20 Jakub Jelinek <jakub@redhat.com> PR debug/47283 diff --git a/gcc/testsuite/g++.dg/debug/pr46583.C b/gcc/testsuite/g++.dg/debug/pr46583.C new file mode 100644 index 0000000..a4e9423 --- /dev/null +++ b/gcc/testsuite/g++.dg/debug/pr46583.C @@ -0,0 +1,40 @@ +// PR debug/46583 +// { dg-do compile } +// { dg-options "-O -fno-inline -fipa-cp -fipa-cp-clone -fcompare-debug" } + +template < typename = unsigned long >struct A +{ + unsigned long elems[3]; + unsigned long *begin () + { + return 0; + } +}; + +void +bar (unsigned long *a1, unsigned long, unsigned long *a3, unsigned const &) +{ + *a3 = *a1; +} + +A < >operatorM (A < >a1, unsigned long a2) +{ + typedef A < >G; + G a3; + bar (a1.begin (), a2, a3.begin (), 0); + return a3; +} + +struct B +{ + B (A < >m):n (operatorM (m, 1)) + { + } + A < >n; +}; + +void +foo () +{ + B (A < >()); +} |