blob: c1d387922ba290d909d9b692f4a165d66f69392c [file] [log] [blame]
// Test that debug info generated for auto-inserted deallocator is
// correctly attributed.
// This patch scans for the lineno directly from assembly, which may
// differ between different architectures. Because it mainly tests
// FE generated debug info, without losing generality, only x86
// assembly is scanned in this test.
// { dg-do compile { target { i?86-*-* x86_64-*-* } } }
// { dg-options "-O2 -fno-exceptions -gdwarf-2 -dA" }
struct t {
t ();
~t ();
void foo();
void bar();
};
int bar();
void foo(int i)
{
t test_outside;
for (int j = 0; j < 10; j++)
{
t test;
test.foo();
if (i + j)
{
test.bar();
return;
}
}
if (i) // Threader makes everything after here disappear.
{
t test;
if (i == 10)
{
test.bar();
}
}
test_outside.foo();
return;
}
// { dg-final { scan-assembler "deallocator.C:29" } }
// { dg-final { scan-assembler "deallocator.C:24" } }
// { dg-final { scan-assembler "deallocator.C:21" } }