1// { dg-do compile } 2// { dg-options "-O2 -fdump-tree-cddce1" } 3 4struct Bar 5{ 6 int i; 7 ~Bar() { } 8}; 9void bar_dtor_loop(Bar* p, unsigned int n) 10{ 11 if (p) { 12 Bar* e = p + n; 13 while (e > p) { 14 --e; 15 e->~Bar(); 16 } 17 } 18} 19 20// The clobber in ~Bar should persist but those inlined into 21// bar_dtor_loop not, nor should the loop therein 22 23// { dg-final { scan-tree-dump-times "CLOBBER" 1 "cddce1" } } 24// { dg-final { scan-tree-dump-times "if" 0 "cddce1" } } 25// { dg-final { cleanup-tree-dump "cddce1" } } 26