re PR tree-optimization/33593 (tree-outof-ssa moves sources of non-call exceptions...
[gcc.git] / gcc / testsuite / g++.dg / tree-ssa / pr24231-3.C
1 /* { dg-do compile } */
2 /* { dg-options "-O2" } */
3 /* PRE testcase for PR 24231, problem with PRE coalescing abnormal phis. */
4 struct MemoryManager {
5 virtual void deallocate() = 0;
6 };
7 struct XalanVector {
8 ~XalanVector() {
9 m_memoryManager->deallocate();
10 }
11 void swap(XalanVector& theOther) {
12 MemoryManager* const theTempManager = m_memoryManager;
13 m_memoryManager = theOther.m_memoryManager;
14 theOther.m_memoryManager = theTempManager;
15 theOther.m_size = 0;
16 }
17 void push_back() {
18 XalanVector theTemp(*this);
19 theTemp.push_back();
20 swap(theTemp);
21 }
22 MemoryManager* m_memoryManager;
23 int m_size;
24 };
25 void f(void) {
26 XalanVector tempVector;
27 tempVector.push_back();
28 }