diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/torture/pr65600.C')
-rw-r--r-- | gcc/testsuite/g++.dg/torture/pr65600.C | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/torture/pr65600.C b/gcc/testsuite/g++.dg/torture/pr65600.C new file mode 100644 index 00000000000..2ee5a4bf551 --- /dev/null +++ b/gcc/testsuite/g++.dg/torture/pr65600.C @@ -0,0 +1,28 @@ +// { dg-do compile } +// { dg-options "-std=c++11" } +class A { +public: + virtual void m_fn1() {} + int weak_release___trans_tmp_1; + void m_fn2() { + __asm__("\n\n\n\n"); + if (weak_release___trans_tmp_1) + m_fn1(); + } +}; +class weak_count { + A *pi_; + +public: + weak_count() : pi_() {} + ~weak_count() { + if (pi_) + pi_->m_fn2(); + } +}; +class B { + weak_count pn; +}; +int +main() { B a; } + |